在我目前的C#代码中,我能够以编程方式锁定Windows用户会话(与Windows + L相同).
由于应用程序仍在运行,有没有办法从该C#程序解锁会话.用户凭据已知.该应用程序在Windows 7上运行.
您将需要一个自定义 Windows 凭据提供程序来为您登录。此外,您需要将用户的凭据保存在某个地方才能登录。Windows SDK 7 中有一些示例https://www.microsoft.com/en-us/download/details.aspx?id=8279
有很多项目可以帮助您开始Samples\security\credentialproviders
。
要解锁屏幕:
CSampleCredential::Initialize
CSampleCredential::SetSelected
WM_TOGGLE_CONNECTED_STATUS
消息以查看如何触发登录虽然很痛苦,但确实有效。
这里有一些黑客可以做到这一点:http://www.codeproject.com/Articles/16197/Remotely-Unlock-a-Windows-Workstation 不过我自己没有测试过。
不适用于 .NET 部分,但您也可以制作自己的自定义登录 UI 并在那里注入一些机制。但它很容易成为安全问题。
Joe*_*orn -14
当然你无法解锁。解锁会话需要用户亲自到场输入其帐户凭据。对于使用工作站锁定的许多其他情况来说,允许软件执行此操作,即使具有保存的凭据,也将是一个安全问题。