我需要检测安全屏幕的关闭,这是用户在 windows 下按下 Ctrl+Alt+Del 时出现的全屏。在 Xp 中,当此屏幕关闭时,我的应用程序会收到一条 wm_paint 消息,但在 windows 7 下,并不总是收到一条消息,可能只有 25% 的时间。
我尝试捕获 WM_WTSSESSION_CHANGE 消息,但如果用户注销然后重新登录到他们的帐户,我只会收到此消息。
不确定 Vista 中的行为,因为到目前为止我只在 XP 和 7 上对此进行了测试。
我需要检测安全屏幕的关闭,这是用户在 windows 下按下 Ctrl+Alt+Del 时出现的全屏。在 Xp 中,当此屏幕关闭时,我的应用程序会收到一条 wm_paint 消息,但在 windows 7 下,并不总是收到一条消息,可能只有 25% 的时间。
我尝试捕获 WM_WTSSESSION_CHANGE 消息,但如果用户注销然后重新登录到他们的帐户,我只会收到此消息。
不确定 Vista 中的行为,因为到目前为止我只在 XP 和 7 上对此进行了测试。
Did you call WTSRegisterSessionNotification() for the window/session to receive the subtypes (wParam) of WM_WTSSESSION_CHANGE (WTS_CONSOLE_CONNECT, WTS_CONSOLE_DISCONNECT, WTS_SESSION_LOCK, WTS_SESSION_UNLOCK)? A plain win32 example is at http://support.microsoft.com/kb/310153
It seems WTS_SESSION_UNLOCK should be what you're after.