以编程方式解锁Windows

fde*_*ose 17 c# windows login

在我目前的C#代码中,我能够以编程方式锁定Windows用户会话(与Windows + L相同).

由于应用程序仍在运行,有没有办法从该C#程序解锁会话.用户凭据已知.该应用程序在Windows 7上运行.

tos*_*-cx 7

您将需要一个自定义 Windows 凭据提供程序来为您登录。此外,您需要将用户的凭据保存在某个地方才能登录。Windows SDK 7 中有一些示例https://www.microsoft.com/en-us/download/details.aspx?id=8279

有很多项目可以帮助您开始Samples\security\credentialproviders

要解锁屏幕:

  • 设置用户名/密码CSampleCredential::Initialize
  • 将自动登录设置为 trueCSampleCredential::SetSelected
  • 搜索硬件提供商示例中的WM_TOGGLE_CONNECTED_STATUS消息以查看如何触发登录
  • 构建某种方式与您的应用程序通信以触发解锁(例如本地 tcp 服务器)

虽然很痛苦,但确实有效。


Iva*_*lov 5

这里有一些黑客可以做到这一点:http://www.codeproject.com/Articles/16197/Remotely-Unlock-a-Windows-Workstation 不过我自己没有测试过。

不适用于 .NET 部分,但您也可以制作自己的自定义登录 UI 并在那里注入一些机制。但它很容易成为安全问题。


Joe*_*orn -14

当然你无法解锁。解锁会话需要用户亲自到场输入其帐户凭据。对于使用工作站锁定的许多其他情况来说,允许软件执行此操作,即使具有保存的凭据,也将是一个安全问题。

  • -1 授予,这是一个安全问题,但经 logmein 证明,有可能 (9认同)