可能重复:
如何以编程方式确定我的工作站是否已锁定?
确定桌面是否为当前登录用户锁定的最佳方法是什么?我查看了MSDN,找不到任何API调用来检测它.我错过了什么,或者我可以使用没有简单的电话?
sno*_*h09 14
答案取决于您是想知道桌面现在是否已锁定,或者是否希望在桌面锁定(并且可能是解锁)时收到通知.这还取决于您计划如何接收所述通知.
如果你真的想要一次性测试,那么这里的答案使用OpenDesktop()并SwitchDesktop()打开默认桌面的句柄并激活它 - 如果失败则表示桌面现在已被锁定.
如果您想要锁定/解锁通知,并且您有一个带窗口和消息泵的用户模式应用程序,那么您需要调用WTSRegisterSessionNotification()并捕获该WM_WTSSESSION_CHANGE消息.
如果您需要通知,并且您作为Windows服务运行,则可以通过在状态结构中调用SetServiceStatus()和添加SERVICE_ACCEPT_SESSIONCHANGE来注册会话更改事件dwControlsAccepted.然后,您将收到设置为自己的服务控制HandlerEx()功能的回调.dwControlSERVICE_CONTROL_SESSIONCHANGE
| 归档时间: |
|
| 查看次数: |
10168 次 |
| 最近记录: |