gpt4 book ai didi

winapi - 检测桌面是否被锁定

转载 作者:行者123 更新时间:2023-12-03 00:31:12 24 4
gpt4 key购买 nike

Possible Duplicate:
How can I programmatically determine if my workstation is locked?

确定当前登录用户的桌面是否已锁定的最佳方法是什么?我查看了 MSDN,但找不到任何 API 调用来检测这一点。我是否错过了什么,或者没有我可以使用的简单调用?

最佳答案

答案取决于您是否想知道桌面现在是否被锁定,或者您是否想在桌面被锁定(并且可能是解锁)时收到通知。它还取决于您计划如何接收所述通知。

  • 如果您确实想要一次性测试,那么答案 here使用OpenDesktop()SwitchDesktop()打开默认桌面的句柄并激活它 - 如果失败,则表明桌面现在已锁定。

  • 如果您想要有关锁定/解锁的通知,并且您有一个带有窗口和消息泵的用户模式应用程序,那么您需要调用 WTSRegisterSessionNotification()并捕获 WM_WTSSESSION_CHANGE 消息。

  • 如果您需要通知,并且正在作为 Windows 服务运行,则可以通过调用 SetServiceStatus() 并添加 SERVICE_ACCEPT_SESSIONCHANGE 来注册 session 更改事件。到状态结构中的 dwControlsAccepted 。然后您将收到对您自己的服务控制的回调HandlerEx()函数,将 dwControl 设置为 SERVICE_CONTROL_SESSIONCHANGE

关于winapi - 检测桌面是否被锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/768314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com