$WM_ENDSESSION näher bestimmen

  • Hallo, ich würde gerne wissen ob es möglich ist,
    den "Shutdown-Code" über $WM_ENDSESSION zu erfahren.

    Momentan sieht das ganze so aus:

    Spoiler anzeigen
    [autoit]

    If Not IsDeclared("WM_QUERYENDSESSION") Then Global Const $WM_QUERYENDSESSION = 0x0011

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

    $hGUI = GUICreate("")
    GUIRegisterMsg($WM_QUERYENDSESSION, "_test")
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    Exit
    EndSwitch
    WEnd

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

    Func _Test($hWnd, $Msg, $wParam, $lParam)
    MsgBox(0, "", "User wird abgemeldet")
    EndFunc ;==>_Test

    [/autoit]

    Eigentlich soll damit ein Herunterfahren/Neu Starten erkannt werden. Allerdings springt das ganze logischerweise auch bei einem Logoff los. Kann man das vllt näher "eingrenzen" ?

    PS: Zum Testen am besten ein Notepad mit einem ungespeicherten Dokument offen lassen - Zumindest Vista fragt dann nach ob man abbrechen möchte. Weiß nich wie das auf XP >= ist.

  • Hallo SEuBo,

    Quelle: http://msdn.microsoft.com/en-us/library/…28VS.85%29.aspx

    mfg (Auto)Bert

  • Zitat

    (it is not possible to determine which event is occurring).


    Danke das hab ich wohl gestern abend überlesen, als ich die MSDN durchforstet habe.

    Wüsste sonst jemand eine Möglichkeit herauszufinden, ob das System gerade Heruntergefahren/Neu gestartet wird?

    "Shutdown -a" weiß ja auch, OB das System gerade heruntergefahren wird. Irgendwoher muss es diese Information ja bekommen.

    LG