Aktion kurz vor dem herunterfahren durchführen!

  • hab nochmal so ne wirre frage... :schild4:

    ihr hasst mich bestimmt schon *hehe*

    und zwaaaaar:

    ich möchte kurz bevor ich einen PC herunterfahre eine aktion durchführen... sprich ich fange den sutdown process ab mache noch kurz bevor der rechner runterfährt etwas!

    is sowas möglich?

    greetz oli ;)

    • Offizieller Beitrag

    Mit Boardmitteln unter Windows ist das nicht möglich. Ist schon lange ein missing feature.
    Da hilft nur der Einsatz externer Programme, die einen Dienst installieren, der dann auf den Shutdown Befehl reagiert.
    Eins davon (nur kurz gegooglet) ist HSLAB Shutdown Folder. http://www.askfiles.com/Utilities/Syst…older-Lite.html
    in der Lite Version ist es Freeware. Läßt sich bestimmt über GUI Befehle autmoatisch konfigurieren.

  • das is leider nicht das was ich suche...

    hier is mal mein code... hab die bedingung beschriftet die ich brauche...

    [autoit]


    #include <GUIConstants.au3>
    TCPStartUp()
    while 1
    Dim $ConnectedSocket = -1
    $ConnectedSocket = TCPConnect("@SERVERIP",33891)
    If <DER PC IS NOCH AN> Then ; <-------------------------------
    $szData="spc01"
    TCPSend($ConnectedSocket,$szData)
    elseif <DER PC FÄHRT GLEICH RUNTER> then ; <-----------------------------
    $szData="spc01_close"
    TCPSend($ConnectedSocket,$szData)
    Exit
    EndIf
    Sleep(1000)
    wend

    [/autoit]

    Einmal editiert, zuletzt von oliverh (4. Mai 2007 um 07:51)

    • Offizieller Beitrag

    Hallo!

    Man kann über die Gruppenrichtlinien auch Programme und Scripte ausführen bevor der Rechner herunterfährt!

    Start => Ausführen => GPEDIT.MSC => Computerkonfiguration => Windows-Einstellungen => Skripts => Herunterfahren
    (Die Gruppenrichtline findet man auch auf dem Domänenkontroller)

  • ja diese sachen kenne ich alle ;) aber darum gehts mir nicht! (siehe code)

    irgendwie muss ich doch diese aktion "HERUNTERFAHREN" über eine abfrage abfangen können und dann ein ereignis durchführen! ... kurz vielleicht zur erläuterung:

    ich habe einen client der an einen server jede sekunde ein tcp paketchen schickt woraufhin der server bemerkt "hallo - pc-soundso is online"... fährt der pc dann herunter soll er kurz ein anderes paket abschicken damit der server weiß "ey der pc-soundso is von uns gegangen"...

    verstehn in athen?

    :musik2:

    • Offizieller Beitrag

    Hi!

    Viel einfacher!?
    Wenn einige Sekunden KEIN Signal kam, ist er heruntergefahren worden...
    Ansonsten kann man noch versuchen, es in die AutoItOnExit-Funktion zu packen, dort kann man zumindest abfragen, ob es wegen Herunterfahrens beendet wurde, ob das funktioniert und wie viel Zeit dann bleibt, weiß ich aber nicht.

    peethebee

  • ah ok das mit der autoit onexit-funktion wär ne möglichkeit... wie könnte das dann aussehen?

    steig da grad nämlich ned so durch... :(

  • ok hab das jetzt mal getestet aber so wie ich das hier hab funktioniert das nich... sieht jemand nen fehler?

    [autoit]


    #include <GUIConstants.au3>
    Opt("OnExitFunc", "exitfunc")
    TCPStartUp()
    while 1
    Dim $ConnectedSocket = -1
    $ConnectedSocket = TCPConnect("172.21.100.166",33891)
    $szData="spc01"
    TCPSend($ConnectedSocket,$szData)
    Sleep(1000)
    Wend

    [/autoit][autoit][/autoit][autoit]

    Func exitfunc()
    $szData="spc01_close"
    TCPSend($ConnectedSocket,$szData)
    EndFunc

    [/autoit]

    kann des sein das wenn ich in dem moment die tcp-funktion

    TCPSend($ConnectedSocket,$szData)

    aufrufe gar keine verbindung mehr zum server besteht???

    EDIT:

    hab das ganze jetzt mal umgebaut - geht aber trotzdem nicht :(

    [autoit]


    #include <GUIConstants.au3>
    Opt("OnExitFunc", "exitfunc")
    TCPStartUp()
    Dim $ConnectedSocket = -1
    $ConnectedSocket = TCPConnect("172.21.100.166",33891)
    while 1
    $szData="spc01"
    TCPSend($ConnectedSocket,$szData)
    Sleep(1000)
    Wend

    [/autoit][autoit][/autoit][autoit]

    Func exitfunc()
    $szData="spc01_close"
    TCPSend($ConnectedSocket,$szData)
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von oliverh (4. Mai 2007 um 09:20)

  • also wen es interessiert habs geschafft

    [autoit]


    #include <GUIConstants.au3>
    Opt("OnExitFunc", "exitfunc")
    TCPStartUp()

    [/autoit][autoit][/autoit][autoit]

    while 1
    Dim $ConnectedSocket = -1
    $ConnectedSocket = TCPConnect("172.21.100.166",33891)
    $szData="spc01"
    TCPSend($ConnectedSocket,$szData)
    Sleep(1000)
    Wend

    [/autoit][autoit][/autoit][autoit]

    Func exitfunc()
    Dim $ConnectedSocket = -1
    $ConnectedSocket = TCPConnect("172.21.100.166",33891)
    $szData="spc01_close"
    TCPSend($ConnectedSocket,$szData)
    EndFunc

    [/autoit]