如何解锁Windows锁屏?

时间:2013-04-11 17:58:37

标签: windows security delphi lockscreen

如何使用Delphi解锁Windows锁屏?我没有在Google或Stackoverflow上找到任何内容。我已经尝试使用keybd_event输入我的密码,但似乎事件在锁屏上不起作用。

5 个答案:

答案 0 :(得分:9)

您无法以编程方式从用户空间解锁锁定屏幕。这是设计的。


好的,让我们澄清一下。使用文档化的API,您无法执行此操作。您需要对@Remko为其SasLibEx产品所做的事项反向设计未记录的API。

答案 1 :(得分:8)

Remko Weijnen在这方面有非常有趣的项目。他发布了一个命令行工具(Winstation Locker),它能够解锁本地/ 远程 Windows XP工作站,而无需知道锁定计算机的用户的密码。

对于Windows Vista及更高版本,他开发了SasLibEx **库,可以解锁甚至特定的终端服务会话,同样没有用户名/密码。

这两种方法都要求您在目标计算机上拥有管理权限/帐户。

请注意,所有这些工具都使用可能被视为非法,不当,不容忍或犯罪的恶意黑客(?)。应与您的客户/雇主讨论,并应谨慎使用!

** SasLibEx是商业产品

答案 2 :(得分:5)

Steamlink(一种允许你将蒸汽游戏流式传输到大屏幕的硬件)目前存在一个问题,如果你的屏幕位于房子的不同部分,为了玩你需要走到你的电脑将其解锁,然后走回大屏幕。

为了减少痛苦,社区中的人came up with this script

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "$sessionid=((quser $env:USERNAME | select -Skip 1) -split '\s+')[2]; tscon $sessionid /dest:console" 2> UnlockErrors.log

它可以远程解锁您的电脑。您可以从Delphi调用tscon.exe来模拟它。

答案 3 :(得分:2)

这实际上可以使用powershell,psexec和windows onscreen键盘完成。虽然程序无法向winlogon发送输入,但是windows osk可以,而且程序确实可以向osk发送输入。

答案 4 :(得分:1)

注意:以下是远程解决方案。

据我所知,除非您从默认桌面切换到 Winlogon 桌面(桌面指的是所有活动的容器),否则键盘事件不会在锁定屏幕上工作< / p>

[背景]

默认桌面是您在阅读此帖子时使用的桌面。 按 Ctrl + Alt + Del

时,Winlogon将被设置为活动状态

[XP]

您需要从默认切换到WinLogon桌面[检查参考],然后您可以通过获取解锁计算机的窗口句柄来解锁机器

IntPtr windowHandle = (IntPtr)FindWindow(null, "Unlock Computer");//Getting Window handle

将用户名和密码发送到相应的编辑框。

参考 http://www.codeproject.com/Articles/16197/Remotely-Unlock-a-Windows-Workstation

[Win7的] 从远程运行tsdiscon.exe。不确定这是如何工作的;但对我来说,它解锁了锁屏。