检测 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 中的用户可见的主要内容,如果未能解决你的问题,请参考以下文章

windows98

检测窗口是不是正在使用硬件加速的图形上下文

如何使用 Ruby 检测在 Windows 平台上是不是按下了 SHIFT 或 ALT 键?

在 Windows Phone 8.1 XAML 中检测停用和应用关闭

将消息添加到登录屏幕 windows 7

win32 检查账户是不是登录