Тема: AHK: Отслеживание событий смены сеанса, выключения, перезагрузки
Следующий скрипт, насколько могу судить, отслеживает события выключения-перезагрузки и выхода из сеанса.
Возможно ли в нём как-нибудь "развести" первые два события так, чтобы перед ними показывался соответствующий им MsgBox?
#SingleInstance Force
SetTimer, RunBeforeShutdown, Off
DllCall("kernel32.dll\SetProcessShutdownParameters", UInt, 0x4FF, UInt, 0)
OnMessage(0x11, "WM_QUERYENDSESSION")
Return
WM_QUERYENDSESSION(wParam, lParam)
{
static sdtry = 0
ENDSESSION_Logoff = 0x80000000
If (lParam & ENDSESSION_Logoff) ; User is logging off.
EventType = Logoff
Else ; System is either shutting down or restarting. and
EventType = Shutdown
If (EventType = "Shutdown" or "Logoff" and sdtry = 0){
sdtry = 1
SetTimer, RunBeforeShutdown, On
Return false ; Tell the OS to Abort the Shutdown/Logoff.
}
Else If (EventType = "Shutdown" or "Logoff" and sdtry = 1)
Return true
}
runBeforeShutdown:
SetTimer, RunBeforeShutdown, Off
If (EventType = "Shutdown")
MsgBox, Shutdown
Else
MsgBox, Logoff
Reload