如何解锁Windows锁屏?

问题描述:

如何使用Delphi解锁Windows锁屏?我在Google或*上找不到任何东西。我已经尝试使用keybd_event输入密码,但它看起来像事件不在锁屏上工作。如何解锁Windows锁屏?

+1

你的意思是这需要'CTRL + ALT + DEL'屏幕?因为这是故意设计的,不可能从Windows以外的任何应用程序解锁它。 – 2013-04-11 18:04:56

+5

让你的程序发送一封电子邮件给用户:“嘿!请解锁电脑。” – 2013-04-11 18:15:07

+1

我认为这可以从内核模式完成,但我没有准确的说明,如何做到这一点。同样为了让任何东西进入内核模式,您需要获得管理员的直接许可(为了安装内核模式驱动程序)。 – 2013-04-11 18:43:48

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


好的,让我们来澄清一下。使用记录的API,你不能这样做。您需要对@Remko为其SasLibEx产品完成的未记录API进行反向工程。

+7

同意。如果任意应用程序可以随意解锁PC,那将是巨大的安全风险。 – 2013-04-11 18:15:19

+1

这实际上是锁定屏幕的目的,锁定你的电脑。 – 2013-04-11 18:35:30

+1

我在想“终端服务客户端”......也许我已经关闭了,但似乎有一种自动化的方式来解锁用“自动”登录的用户帐户。 – kobik 2013-04-11 20:54:29

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

对于Windows Vista及更高版本,他开发了SasLibEx **库,该库甚至可以解锁特定的终端服务会话,而且不需要用户名/密码。

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

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

** SasLibEx是一个商业产品

+4

感谢您链接到我的工具!但请注意,Winstation Locker是免费的,但SasLibEx是一个商业解决方案。 – Remko 2013-04-11 21:21:06

+2

那么,这个工作到底如何? – 2013-04-11 21:48:13

+0

@DavidHeffernan指向Winstation Locker的链接完全描述了它的工作方式......至于SasLibEx,它不是公开的,但是企业版带有源代码! – Remko 2013-04-12 07:17:11

这其实是可以做到使用PowerShell,PSEXEC和Windows屏幕键盘。虽然一个程序不能发送输入到winlogon,但是windows osk可以,而且肯定程序可以发送输入到osk。

+4

如果您提供示例,我接受您的答案作为解决方案。 – fnkr 2014-08-22 19:17:55

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

据我所知,键盘事件不会在锁定屏幕上工作,除非你从默认桌面Winlogon中桌面交换机(桌面指的是所有活动的容器)

[背景]

默认桌面是您在阅读本文时使用的桌面。 Winlogon中会当您按下被设置为活动的一个按Ctrl + Alt + Del键

[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。不知道这是如何工作的;但对我来说,它解锁了锁定屏幕。

+2

此外,您需要添加tsdiscon.exe的注册表项才能使用 Windows注册表编辑器版本5。00 [HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows NT \ CURRENTVERSION \ Winlogon中] “DefaultDomainName”= “域名” “DefaultUserName”= “则domainName \\ username” 的 “AutoAdminLogon”= “1” “ DefaultPassword “=” 密码” – 2014-10-10 19:49:35

Steamlink(一种硬件,可以让你流你的Steam游戏的大屏幕)目前有一个问题,如果你的屏幕是在房子的不同部分,以发挥你需要步行到你的电脑解锁它,然后走回你的大屏幕。

为了使它不那么痛苦,人在社会上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来模拟它。