shutdown abfangen

  • kann man einen shut down für eine kurze zeit anhalten

    sprich ich drücke herunterfahren dann hält autoit den shutdown für 5 sek. an und startet in dann neu oder lässt ihn weiter laufen

  • So könnte es klappen:

    [autoit]

    OnAutoItExitRegister("StopShutdown")
    While sleep(1)
    WEnd
    Func StopShutdown()
    If @ExitMethod=4 Then Run(@ComSpec &" /c shutdown -a")
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Ineluki (18. August 2010 um 18:55)

  • mhh kommt ne fehler meldung außerdem muss es endfunc heißen und nicht endif

    sonst noch einer ne idee

  • Aus einem anderen Thread von mir, den ich nicht verlinken darf :

    Spoiler anzeigen
    [autoit]

    $WM_QUERYENDSESSION = 0x11
    GUIRegisterMsg($WM_QUERYENDSESSION, "Cancel_Shutdown")
    $Hwnd = GUICreate("PreventShutdownGUI")
    ;~ GUISetSTate(@SW_SHOW)

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

    _ShutdownBlockReasonCreate($hwnd, "Sorry, AutoIt > Windows")
    TrayTip("Shutdown Blocker - Started", "Denies shutdowns from now on.", 20)
    While Sleep(100)
    WEnd
    _ShutdownBlockReasonDestroy($hwnd)

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

    Func _ShutdownBlockReasonCreate($Hwnd, $wStr)
    ; http://msdn.microsoft.com/en-us/library/ms...28VS.85%29.aspx
    ; Prog@ndy
    Local $aResult = DllCall("User32.dll", "int", "ShutdownBlockReasonCreate", "hwnd", $Hwnd, "wstr", $wStr)
    If @error Then Return SetError(1,0,0)
    Return $aResult[0]
    EndFunc

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

    Func _ShutdownBlockReasonDestroy($Hwnd)
    Local $aResult = DllCall("User32.dll", "int", "ShutdownBlockReasonDestroy", "hwnd", $Hwnd)
    If @error Then Return SetError(1,0,0)
    Return $aResult[0]
    EndFunc

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

    Func Cancel_Shutdown($hWndGUI, $MsgID, $WParam, $LParam)
    ; This HAS to be here to capture the endsession...
    AdlibRegister("Cancel_ShutdownResolver",50)
    Return False
    EndFunc

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

    Func Cancel_ShutdownResolver()
    Local $iOpt = Opt("WinTitleMatchMode",4),$hwnd = WinGetHandle("[CLASS:BlockedShutdownResolver]")
    Opt("WinTitleMatchMode",$iOpt)
    If $hwnd Then
    If @OSVersion = "WIN_7" Then ControlClick($hwnd,"","[CLASS:Button; INSTANCE:1]")
    If @OSVersion <> "WIN_7" Then ControlClick($hwnd,"","[CLASS:Button; INSTANCE:2]")
    AdlibUnRegister("Cancel_ShutdownResolver")
    TrayTip("Shutdown Blocker - Shutdown denied", "Denied shutdown successfull!", 5)
    _DeineFunktion() ; <================ Hier musst du deine Funktion einfügen
    EndIf
    EndFunc

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

    Func _DeineFunktion()
    MsgBox(0,"","Das hier ist deine Funktion ;) - Danach musst du erneut _ShutdownBlockReasonDestroy($hwnd) aufrufen, und einen neuen Shutdown machen.")
    EndFunc

    [/autoit]

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Super script!!

    Funktioniert alles...!!
    AUßER das über die CMD-LINE: Shutdown -s -t 2

    ... Hättest du dafür auch ne lösung...?

  • OT: Hallo, womit hast du das Filmpchen aufgenommen wenn ich fragen darf? Mann sieht gerade vorm Ende nur das Kamera-symbol unten rechts...

    Zitat


    [dein Youtube Beitrag]

    Programmieren ist ein bisschen Wissenschaft und viel Spass! :)