Dani
Dani

Reputation: 1075

Windows Logoff Event c++

I need to catch windows logoff event, I'm using c++. I dont know where to start searching,

thanks for any help,

Dani.

Upvotes: 5

Views: 5472

Answers (4)

vakuras
vakuras

Reputation: 1007

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.

Upvotes: 1

Agnel Kurian
Agnel Kurian

Reputation: 59466

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.

Upvotes: 1

adf88
adf88

Reputation: 4442

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.

Upvotes: 9

Will A
Will A

Reputation: 24998

WM_QUERYENDSESSION and WM_ENDSESSION are most likely what you're after.

Upvotes: 4

Related Questions