【问题标题】:C++ script to “unlock” windows after being locked using “LockWorkStation()”使用“LockWorkStation()”锁定后用于“解锁”窗口的 C++ 脚本
【发布时间】:2011-09-14 00:45:55
【问题描述】:

我有一个 C++ 脚本,可以在特定事件发生时锁定窗口。锁定窗口是使用“LockWorkStation()”命令完成的。我想做的是在发生其他事件时“解锁”窗口。为了争论,让我们假设窗口是“锁定的”。我需要在 2 分钟后解锁 Windows。 这需要对 MSGINA.dll 进行任何修改吗?或者它是一个类似于 LockWorkStation() 的简单命令? 知道我将用户名和密码保存在某处(目前在用作密钥的 USB 记忆棒上)。

非常感谢任何指导、建议或程序来完成任务的方向。

问候

【问题讨论】:

  • 什么是 C++ 脚本
  • 在我看来,锁定并不意味着以编程方式退出,只能通过“物理”用户操作。按照这种逻辑,按设计应该没有办法做到这一点。当然,网络上有一些 hacks 展示了如何使用代码注入来做到这一点,但我认为你不会得到稳定的东西(它可能会被阻止/无法在未来版本的 windows 上运行)。跨度>
  • 一开始为什么要让站被锁定?真的,你在这里逆流而上。
  • 你好大卫;我有一个指纹与此类似的鼠标(reviews.cnet.com/mice/microsoft-wireless-intellimouse-explorer/…),所以一旦未经授权的人使用鼠标,我想“锁定”站点。因此,一旦授权人员使用鼠标,我想“解锁”该站。任何建议将不胜感激。谢谢。

标签: c++ winapi winlogon gina


【解决方案1】:

不支持解锁工作站的机制。您必须编写一个自定义 GINA 模块,然后以某种方式与之通信。

使用标准 GINA,您可以获得的最接近的方法是进行自动登录(例如使用 Autologon tool from SysInternals)。但是自动登录仅在机器重新启动或用户注销后才会启动,因此用户会话将丢失。

【讨论】:

  • FWIW,GINA 在 Vista 及更高版本上不存在。
  • 谢谢塞瓦。您认为我打算做的事情可以通过凭据提供者来完成吗?还是同样的问题仍然存在?
  • 大卫是对的。我错过了从 Windows Vista 开始存在的自定义 GINA。即使在 XP 及更低版本上,自定义 GINA 也可能不是您想要的解决方案,因为编写自定义 GINA 的复杂性太高。
  • @Louis,凭据提供程序无法自行启动登录或会话解锁。只有 Winlogon 和 LogonUI 可以做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-26
  • 1970-01-01
  • 2013-02-25
  • 2015-08-28
  • 2016-09-26
  • 2020-12-07
相关资源
最近更新 更多