【问题标题】:How to detect Windows is locked?如何检测 Windows 是否被锁定?
【发布时间】:2012-01-26 05:42:18
【问题描述】:

如何检测 Windows 是否被锁定(Win+L 或被屏幕保护程序锁定)?有可能吗?

【问题讨论】:

标签: winapi win32com


【解决方案1】:

没有记录的方法来检查会话是否被锁定。然而,有一种方法可以检测到会话被获取锁定。使用 WTSRegisterSessionNotification(),当工作站被锁定时,您将收到带有 WTS_SESSION_LOCK 值的 WM_WTSSESSION_CHANGE 消息。

如果您打算通过服务执行此操作,请务必在 Google 上搜索“会话 0 隔离”以找出不起作用的原因。

【讨论】:

  • 谢谢!现在我正在阅读这个链接support.microsoft.com/kb/310153。我稍后会尝试代码。
  • 使用WTSRegisterSessionNotification() 是唯一的选择。 MSDN 也这么说(参见msdn.microsoft.com/en-us/library/windows/desktop/aa376875.aspx):“没有可以调用的函数来确定工作站是否被锁定。要在用户登录时接收通知,请使用WTSRegisterSessionNotification() 函数接收WM_WTSSESSION_CHANGE 消息。”使用HandlerEx SCM 回调(与Handler SCM 回调相反)的服务可以接收来自WTSRegisterSessionNotification()SERVICE_CONTROL_SESSIONCHANGE 通知。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
相关资源
最近更新 更多