shutdown abfangen möglich ?

  • hiho,

    ich habe in einem script die option (optonexit), dass eine msgbox mit einer erinnerung erscheint, sobald autoit beendet wird.
    dass ist spätestens dann der fall, wenn windows runtergefahren wird.

    nun gibt es ja die super möglichkeit, einen shutdown via befehl "shutdown -a" abzubrechen.
    danach wollte ich den shutdown-prozess von autoit neu starten lassen, mit der option -c (kommentar) und -t von 10 sek.

    ich denke mal, dass ganze würde in der praxis auch klappen, nur mein problem ist, es gibt ja mehr als nur shutdown, auch logoff und reboot.
    wie kann ich diese prozesse auseinander halten, so dass es nicht passiert, wenn ein user sich nur ausloggen will, mein script den logoff abfängt und einen shutdown macht ...

    ist das möglich, sinnvoll oder gibt es andere vorschläge?

  • das script liegt im autostart, schließt auf wunsch ein paar fenster und öffnet programme oder dateien nach dem start, wenn gewünscht.

    sofern keine shutdown-msg erwünscht ist, schließt es sich nach diesen aufgaben, ansonsten wartet es zZ noch darauf, bis es beendet wird, und gibt dann eine msgbox aus.

    die msgbox ist natürlich nicht von dauer, da windows sie beim shutdown auch schnellstmöglich schließt.

    deswegen hatte ich an die option gedacht, den eigentlichen shutdown abzufangen und einen eigenen mit kommentar zu starten, wo ich selber festlegen kann, dass die box dann 10 sek angezeigt wird.

    prob liegt jetzt einfach daran, ist gibt mehr als nur shutdown

  • die nachricht, die in der msgbox erscheint, kann frei gewählt werden.
    es ist eine art gedächtnisstütze.

    dass man dort sachen einträgt, die noch gemacht werden müssen, bevor man das büro verlässt.
    zb fenster zu, klimaanlage aus, kaffemaschine aus, oder so kram.

    dass soll eigentlich nur angezeit werden, wenn der pc wirklich heruntergefahren wird. da man sich ja auch zwischendurch einfach mal abmelden kann und noch weiter im büro ist, müsste die meldung dann nicht erscheinen, jedoch habe ich bis jetzt keine möglichkeit gefunden, die box nur auf den eigentlichen shutdown zu beziehen.

    da man aber 10 zeilen oder mehr nicht in 3 sek durchlesen kann, um wirklich an alles zu denken, diese idee.

    hoffe dass jetzt alle fragen geklärt sind *g*

  • was peethebee meint ist, dass man innerhalb der Funktion OnAutoItExit () mit Hilfe des Makros @ExitCode sehen kann, wodurch autoit geschlossen wird:

    0 Natural closing.
    1 close by Exit function.
    2 close by clicking on exit of the systray.
    3 close by user logoff.
    4 close by Windows shutdown.


    Zwischen Reboot und Shutdown wirst du allerdings damit nicht unterscheiden können denk ich, aber bei logoff hilft das schonmal ^^

    Einmal editiert, zuletzt von IsleOftechno (5. Juni 2007 um 23:49)

  • hmm, restart wird ja nicht sooo oft vorkommen, so lange ich den logoff ausgeschlossen habe, würde es gehen.

    kann das ja optional einbinden mit dem hinweis aus reboot probs.

    wobei, wie startet windows, wenn man über start - ausschalten eine option auswählt, überhaupt den prozess?
    auch über diese parameter?

    wie liest autoit diese aus, wenn man processexist macht?
    ich kann mich daran erinnern, als ich mir mit processexp einen command-line process mit parametern angeguckt habe, diese dort alle aufgeführt wurden.

    könnte es also gehen, den process so abzufangen?
    If ProcessExist("shutdown.exe -s")
    then run(@systemdir & "\shutdown.exe -s -t 10 -c " & $msg)
    endif

  • Vielleicht noch eine andere Idee.....

    Da ich noch mit DOS-Programmen arbeite, erlebe ich öfter, dass Windows so seine Probleme hat mit offenen DOS-Programmen sauber runter zu fahren. Vielleicht funktioniert es, wenn Du einfach ein DOS-Fenster auf machst, welches 10 Sec exisitert. In dieser Zeit blockiert sich der Shutdown-Prozess vielleicht.

    Habe das aber nicht getestet.


    P.S: Das löst Dein Problem mit dem Shutdown / Reboot allerdings auch nicht.

    Kannst Du evtl. die Meldung zeitgesteuert anzeigen lassen?

    Lass die Anzeige doch immer anzeigen, oder sind deine Benutzer so döddelig, dass sie die Fenster vormittags schließen weil die Anzeige beim reboot kommt, obwohl sie noch nicht heim gehen? *lacht*

    Ach, noch ein Nachtrag:
    Meine Erfahrung ist übrigens, dass nach einer (ziemlich kurzen Weile) die Meldung eh niemand mehr liest. Ich hatte mal eine ähnliche Funktion und es musste immer ein anderer Buchstabe gedrückt werden um die Meldung wegzudrücken. Aber die haben nur geschaut welcher Buchstabe dran war - gelesen hat die Meldung dann niemand mehr - darüber nachgedacht was die Meldung bedeutete hat auch niemand mehr. Soviel zu 'Lebenserfahrung'. Vielleicht löst das auch Dein Problem.... ;)

    2 Mal editiert, zuletzt von Carsten (6. Juni 2007 um 10:12)

  • ja @ carsten,

    sowas hab ich mir auch schon gedacht, dass die meldung eh keiner mehr liest.
    aber sie geben ja ihre eigenen nachrichten ein und sind dafür verantwortlich. da mach ich mir dann keine gedanken mehr drum, wenn sie danach noch die hälfte der anstehenden sachen vergessen *g*

    eigentlich wäre dass so, wie ich es jetzt vorhabe, nur ein weiterer gimmick mehr ... von nöten ist es sicherlich nicht, da reicht die msgbox doch noch vollkommen aus.

    aber für meinen seelenfrieden wär es natürlich was *g*

  • In unserem Aufenthaltsraum hängt neben der Ausgangstüre ein großer roter Zettel 'Alle Fenster zu?'.

    Wie kann ich das mit AutoIt lösen???

    *lacht*

    Ich mache auch immer den Fehler viel zu viel über den PC lösen zu wollen, aber es gibt einen alten Spruch der heute - meiner Meinung mehr denn je - gültig ist: 'In der Einfachheit liegt die Würze'.

    Aber ich kenne das, denn ich löse auch gerne Probleme um der Lösungs-Willen (nicht der Notwendigkeit wegen).

    Vielleicht solltest Du den Mitarbeitern auch einfach mehr Selbstverantwortung übergeben, die geht heute leider - durch die Gesetzgebung gefördert - immer mehr verloren. Dabei wollen wir doch alle Mitarbeiter, die mitdenken.....

    Aber ok, wir sind hier ja in einem AutoIt-Forum.....
    Schönen Feiertag morgen (wer einen hat)