检测 Windows 登录屏幕是不是对 VB.NET 中的用户可见
Posted
技术标签:
【中文标题】检测 Windows 登录屏幕是不是对 VB.NET 中的用户可见【英文标题】:Detecting if Windows Login Screen is visible to user in VB.NET检测 Windows 登录屏幕是否对 VB.NET 中的用户可见 【发布时间】:2011-08-12 20:12:19 【问题描述】:你好 *** VB.NET 成员,
运行以下代码(锁定计算机)后,我必须应用什么代码才能查看用户是否已成功登录计算机以及我所谓的“锁定屏幕”是否消失了?
Private Declare Function LockWorkStation Lib "user32.dll" () As Long
Private Function LockComputer()
LockWorkStation()
End Function
我将调用“LockComputer”,然后我该怎么做才能查看此功能调用的锁定屏幕(例如 2 分钟后)是否消失或仍然存在向用户询问密码!
谢谢, 阿克希特·苏塔
【问题讨论】:
【参考方案1】:看看这个:http://msdn.microsoft.com/en-us/library/aa376875%28v=vs.85%29.aspx
上面写着:没有可以调用的函数来确定工作站是否被锁定。
但是:
要在用户登录时接收通知,请使用 WTSRegisterSessionNotification 函数接收 WM_WTSSESSION_CHANGE 消息。您可以使用会话通知来跟踪桌面状态,以便了解是否可以与用户交互。
【讨论】:
【参考方案2】:你在MSDN documentation of LockWorkstation API读到过这个:
没有可以调用的函数 判断工作站是否 锁定。何时收到通知 用户登录,使用 WTSRegisterSessionNotification 接收函数 WM_WTSSESSION_CHANGE 消息。
【讨论】:
以上是关于检测 Windows 登录屏幕是不是对 VB.NET 中的用户可见的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Ruby 检测在 Windows 平台上是不是按下了 SHIFT 或 ALT 键?