Hello,
I need to catch windows logoff event, I'm using c++. I dont know where to start searching,
thanks for any help,
Dani.
Hello,
I need to catch windows logoff event, I'm using c++. I dont know where to start searching,
thanks for any help,
Dani.
WM_QUERYENDSESSION and WM_ENDSESSION are most likely what you're after.
In console application, you can register a callback (SetConsoleCtrlHandler
, CTRL_LOGOFF_EVENT
).
In message-loop application, you can catch certain messages (WM_QUERYENDSESSION
, WM_ENDSESSION
).
See Logging Off (Windows) on MSDN.
I believe the "correct" way is to listen to a WMI event.
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/0c1bded8-0cce-4260-bd28-4b4ffce0d27d
Disclaimer: I have not tried this myself.
You can use OpenInputDesktop MSDN
During logoff, the Input Desktop is inaccessible to the user, and the function retuns NULL.
ex: HDESK hDesk = OpenInputDesktop(0, FALSE, READ_CONTROL);
if (!hDesk) -- during logoff... -- else { --normal state-- CloseHandle(hDesk); }
In windows vista & 7, pressing CTRL+ALT+DELETE also brings to an inaccessible to the user desktop.