众所周知,我们可以使用“user32.dll”中的“LockWorkStation()”这样的api来锁定窗口。
但是如何解锁呢?
例如,如果我首先运行应用程序,我希望应用程序在30秒后自行解锁窗口。
怎么做?换句话说,如果自动登录,windows将从regedit读取用户名和密码,然后使用api登录。
现在我需要api。它必须存在,但似乎不公开。
我可以获得应用程序窗口的用户名和密码。
WBF似乎有一些Api。但是你知道,资源太少了。
我不想发送键盘消息来解决问题,因为这是最糟糕的方法。
答案 0 :(得分:8)
宣传我的评论,因为它需要更多解释:
您真的想为Windows Vista及更高版本编写GINA(针对XP)或Credential Provider。
基本上,Windows身份验证模型基于用户提供他们被授权访问计算机的证据(标识)(通过其凭据或生物识别数据或智能卡或其他信息)。一旦您被授权登录计算机,Windows允许您访问。
当工作站被锁定时(无论出于何种原因 - 屏幕保护程序,用户输入Win-L),用户需要重新进行身份验证。
通常这就足够了 - 授权在一段时间内是好的(由管理员决定)。如果(出于政策原因)您需要更精细的控制模型,您可以使用“LockWorkstation”的想法强制用户重新进行身份验证。你需要非常小心误报(除了被告知他们不允许使用他们的电脑只是因为他们移除了他们的眼镜或梳理他们的头发不同)以及你的应用程序导致系统资源消耗多少。
答案 1 :(得分:1)
当工作站被锁定时,解锁它的唯一方法是用户登录(按 Alt + Ctrl + Del 并输入正确的密码)。这是一项安全功能,您无法使用应用程序API进行规避。