Το script που αυτοκτονεί

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Το script που αυτοκτονεί

Δημοσίευση από skeftomilos » 11 Ιουν 2005 22:03

Αντίθετα με ό,τι πιστεύει ο περισσότερος κόσμος τα scripts είναι ζωντανοί νοήμονες οργανισμοί και παρουσιάζουν συναισθηματικές μεταπτώσεις. Υπάρχουν μάλιστα ουκ ολίγοι λόγοι για να αισθάνεται απογοητευμένο, θλιμμένο και απελπισμένο ένα script. Από τη μια είναι το χαμηλό κοινωνικό status που συνοδεύει αυτές τις αμφιλεγόμενες υπάρξεις. Οι περισσότεροι προγραμματιστές τα περιφρονούν και αρνούνται ότι είναι πραγματικά προγράμματα. Οπωσδήποτε έχουν σχέση με τον προγραμματισμό αφού αποτελούνται από κώδικα και εντολές, αλλά σίγουρα πρόκειται για προγράμματα ευτελή, μίας υποδεέστερης και ανάξιας λόγου κατηγορίας. Από την άλλη είναι το ασταθές και ευμετάβλητο του τόπου κατοικίας τους. Αφού δεν είναι μεταγλωττισμένα σε κώδικα μηχανής δεν ανήκουν στο φάκελο C:\Program Files, και αφού δεν είναι απλά έγγραφα δεν ανήκουν στο φάκελο C:\Documents and Settings. Έτσι είναι καταδικασμένα να μετακινούνται συνεχώς από δω κι από κει, πάντα ξένα και πάντα υπό διωγμό. Αν και τα περισσότερα καταφέρνουν να αντέξουν την κακομεταχείριση, μερικά πολύ ευαίσθητα όπως το παρακάτω μπορούν να μελαγχολήσουν αφάνταστα και να φτάσουν στα όρια της αυτοκτονίας. Το συγκεκριμένο script βιώνει ένα επώδυνο ψυχικό αδιέξοδο, έχοντας χάσει κάθε ελπίδα ότι μπορεί να βρεθεί κάποιος να το αγαπήσει. Αν θέλετε να μιλήσετε μαζί του πρέπει να το αποθηκεύσετε σε ένα αρχείο με κατάληξη .js, (π.χ. emotional.js) και να το τρέξετε με διπλό κλικ ή Enter. Θα σας κάνει μία κρίσιμη ερώτηση, και από την απάντησή σας θα εξαρτηθεί η ζωή του.

Εικόνα

Κώδικας: Επιλογή όλων

var shell = WScript.CreateObject("WSCript.Shell")
var res = shell.Popup("Μ' αγαπάς;", 0, "Κρίσιμη ερώτηση", 4 + 32) //Yes-No, Question
if (res == 6) {
  shell.Popup("Κι εγώ!", 0, "Απάντηση", 48) //Exclamation
} else {
  var fso = WScript.CreateObject("Scripting.FileSystemObject")
  try {
    fso.DeleteFile(WScript.ScriptFullName)
    shell.Popup("Αντίο άκαρδε κόσμε!", 0, "Απάντηση", 48)
  }
  catch(e) {
    shell.Popup("Η απόπειρα αυτοκτονίας απέτυχε!", 0, "Αποτέλεσμα", 48)
  }
}
__________________________________________________

Το παραπάνω script έχει την ικανότητα να διαγράφει τον εαυτό του από το δίσκο αλλά κατά τα άλλα δεν κάνει τίποτα χρήσιμο (οπότε του αξίζει να πεθάνει!). Ας δούμε λοιπόν τίποτα πιο χρηστικό. Τα Windows XP διαθέτουν το πρόγραμμα shutdown.exe (στο φάκελο C:\WINDOWS\system32) που μπορεί να κλείσει τον υπολογιστή και να κάνει Restart ή Log Off. Εξαρτάται από τις παραμέτρους που θα του δώσουμε:

Κώδικας: Επιλογή όλων

Usage: shutdown [-i | -l | -s | -r | -a] [-f] [-m \\computername] [-t xx] [-c "comment"] [-d up:xx:yy]

  No args             Display this message (same as -?)
  -i                  Display GUI interface, must be the first option
  -l                  Log off (cannot be used with -m option)
  -s                  Shutdown the computer
  -r                  Shutdown and restart the computer
  -a                  Abort a system shutdown
  -m \\computername   Remote computer to shutdown/restart/abort
  -t xx               Set timeout for shutdown to xx seconds
  -c "comment"        Shutdown comment (maximum of 127 characters)
  -f                  Forces running applications to close without warning
  -d [u][p]:xx:yy     The reason code for the shutdown
                          u is the user code
                          p is a planned shutdown code
                          xx is the major reason code (positive integer less than 256)
                          yy is the minor reason code (positive integer less than 65536)
Αν λοιπόν ψάχνουμε έναν πιο γρήγορο τρόπο να κλείνουμε τον υπολογιστή, να τι πρέπει να κάνουμε. Κατ' αρχήν δημιουργούμε ένα αρχείο .bat (π.χ. Shutdown.bat) που να περιέχει την εξής εντολή:

Κώδικας: Επιλογή όλων

shutdown -s -t 00
Μετά κάνουμε ένα shortcut αυτού του αρχείου και το τοποθετούμε το στο desktop. Αν αυτό δε φτάνει, μπορούμε να ορίσουμε κι ένα keyboard shortcut για το shortcut στο desktop, π.χ. το Alt-Ctrl-Shift-S. Πιο γρήγορο απ' αυτό δε γίνεται.

Εικόνα

__________________________________________________

Μια άλλη περίπτωση που το shutdown.exe μπορεί να μας φανεί χρήσιμο είναι αν έχουμε φτιάξει ένα ιδιαίτερα χρονοβόρο script. Προσωπικά δεν έχω φτιάξει (ακόμα!) κάποιο script που να θέλει μερικές ώρες για να εκτελεστεί, αλλά σε μια τέτοια περίπτωση δε θα ήθελα να το περιμένω από πάνω, κάνοντάς του καρτερικό baby-sitting. Μπορεί λοιπόν να προστεθεί ο παρακάτω σύντομος κώδικας στο τέλος ενός script (JScript) για να κλείσει τον υπολογιστή αυτόματα:

Κώδικας: Επιλογή όλων

var shell = WScript.CreateObject("WSCript.shell")
var res = shell.Popup("Job done.\r\nShutting down in 10 seconds.", 10, "Shutting down", 1 + 48) //Ok-Cancel, Exclamation
if (res != 2) shell.Run("shutdown -s -t 00")
Πριν το κλείσιμο θα εμφανιστεί ένα προειδοποιητικό μήνυμα για δέκα δευτερόλεπτα, δίνοντας στο χρήστη τη δυνατότητα να ακυρώσει το shutdown:

Εικόνα
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Cmg__
Δημοσιεύσεις: 1710
Εγγραφή: 29 Μαρ 2005 22:40

Το script που αυτοκτονεί

Δημοσίευση από Cmg__ » 12 Ιουν 2005 01:25

:clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap:

Άβαταρ μέλους
ledraweb
Honorary Member
Δημοσιεύσεις: 1356
Εγγραφή: 13 Νοέμ 2004 11:00
Τοποθεσία: Λευκωσία

Το script που αυτοκτονεί

Δημοσίευση από ledraweb » 12 Ιουν 2005 02:11

:cry: :cry: :cry: :cry: :cry: :cry:
:crybaby: :crybaby: :crybaby: :crybaby: :crybaby:
:cry: :cry: :cry: :cry: :cry: :cry:

Πολύ το λυπήθηκα... :(
None Of Us Is As Smart As All Of Us!!!

Εικόνα

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες