用户锁定屏幕的Windows消息 我正在使用C++中的老学校Windows编程,我需要在WDNPROC中捕获一个事件,指示用户已经注销或锁定屏幕。

用户锁定屏幕的Windows消息 我正在使用C++中的老学校Windows编程,我需要在WDNPROC中捕获一个事件,指示用户已经注销或锁定屏幕。,c++,windows,winapi,message,logout,C++,Windows,Winapi,Message,Logout,更新(感谢David Hefernan)我到处都搜索过,但我唯一找到的是WM_ENDSESSION消息,它不处理屏幕锁定事件 有人知道这是怎么做到的吗?我需要通过Windows XP flavors将其应用于Windows 2000。解决方案是在WndProc中对其进行响应 根据WM\u WTSSESSION\u CHANGE的文档,支持的最低操作系统是XP。现在,由于Windows 2000不再受支持,文档中经常说XP是最基本的功能,而事实上该功能在早期版本中是可用的。在这种情况下,快速的网络

更新(感谢David Hefernan)我到处都搜索过,但我唯一找到的是WM_ENDSESSION消息,它不处理屏幕锁定事件

有人知道这是怎么做到的吗?我需要通过Windows XP flavors将其应用于Windows 2000。

解决方案是在WndProc中对其进行响应

根据
WM\u WTSSESSION\u CHANGE
的文档,支持的最低操作系统是XP。现在,由于Windows 2000不再受支持,文档中经常说XP是最基本的功能,而事实上该功能在早期版本中是可用的。在这种情况下,快速的网络搜索表明你可能会失望


要获得关于会话注销的通知(而不是屏幕锁定),您应该能够使用消息的
lParam
值。查看是否存在
ENDSESSION\u注销
标志。

WM\u ENDSESSION
LPRAM包括
ENDSESSION\u注销
,当它是注销而不是注销时shutdown@David:难以置信(沮丧)。谢谢你发现了。现在我只需要弄清楚为什么我的应用程序没有对WM_ENDESSION做出反应,不管我做什么-就好像我的应用程序根本没有接收到它一样。Brent,只需调用WTSRegisterSessionNotification来接收相关消息。@Joe:如果(1)远程桌面API在不“使用”远程桌面的情况下也适用,(2)我很想尝试一下如果有人告诉你必须包含哪些头文件才能访问API的秘密(你知道吗?),当你说“注册”时,你是说像“RegisterWindowMessage()”
http://msdn.microsoft.com/en-us/library/ms644947.aspx
?或者你只是说我应该把它添加到我的WndProc中?@Brent注意,register是一个链接(指向WTSRegisterSessionNotification)。点击链接!我很确定你不能在Win2k上使用
WM\uwtssession\uchange