使用 C# 检查工作站锁定/解锁更改
如何检测(在运行时)当 Windows 用户锁定屏幕 (Windows+L) 并再次解锁时。 我知道我可以全局跟踪键盘输入,但是是否可以使用环境变量检查此类内容?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何检测(在运行时)当 Windows 用户锁定屏幕 (Windows+L) 并再次解锁时。 我知道我可以全局跟踪键盘输入,但是是否可以使用环境变量检查此类内容?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
SessionSwitch 事件可能是您最好的选择。 检查通过 SessionSwitchReason http://msdn.microsoft.com/en-us/library/microsoft.win32.sessionswitcheventargs.aspx" rel="noreferrer">SessionSwitchEventArgs 找出它是什么类型的开关并做出适当的反应。
A SessionSwitch event may be your best bet for this. Check the SessionSwitchReason passed through the SessionSwitchEventArgs to find out what kind of switch it is and react appropriately.
您可以通过 WM_WTSSESSION_CHANGE 消息获取此通知。 您必须通知 Windows 您希望通过 WTSRegisterSessionNotification 接收这些消息,并使用 WTSUnRegisterSessionNotification 取消注册。
这些帖子应该对 C# 实现有帮助。
http://pinvoke.net/default.aspx/wtsapi32.WTSRegisterSessionNotification
http://blogs.msdn.com/shawnfa/archive/2005/05 /17/418891.aspx
http:// bytes.com/groups/net-c/276963-trapping-when-workstation-locked
You can get this notification via a WM_WTSSESSION_CHANGE message. You must notify Windows that you want to receive these messages via WTSRegisterSessionNotification and unregister with WTSUnRegisterSessionNotification.
These posts should be helpful for a C# implementation.
http://pinvoke.net/default.aspx/wtsapi32.WTSRegisterSessionNotification
http://blogs.msdn.com/shawnfa/archive/2005/05/17/418891.aspx
http://bytes.com/groups/net-c/276963-trapping-when-workstation-locked
您可以使用
ComponentDispatcher
作为获取这些事件的替代方法。这是一个包装它的示例类。
You can use
ComponentDispatcher
as an alternative way to get those events.Here's an example class to wrap that.
你绝对不需要 WM_WTSSESSION_CHANGE
只需使用内部 WTTS API。
You absolutely don't need WM_WTSSESSION_CHANGE
Just use internal WTTS apis.