2009-08-29 41 views
3

众所周知,我们可以在“user32.dll”中使用“LockWorkStation()”这样的api来锁定窗口。 但是如何解锁呢?
如何通过应用程序本身解锁或登录窗口

例如,如果我第一次运行应用程序,我希望应用程序在30秒后自行解锁窗口。 如何做到这一点?换句话说,如果自动登录,windows将从regedit读取用户名和密码,然后使用api登录。 现在我需要api。它必须存在,但它似乎不公开。

我可以获取应用程序的窗口的用户名和密码。

似乎WBF中有一些Api。但是你知道,资源太少了。 我不想发送键盘消息来解决问题,因为这是最糟糕的方法。

回答

8

促进我的意见,因为它需要更多的解释:

你真的想要写一个GINA(对于XP)或Credential Provider为Windows Vista和超越。

基本上,Windows身份验证模型基于用户提供的证据(身份),他们有权访问计算机(通过凭据或生物识别数据或智能卡或其他信息)。一旦您被授权登录到计算机,Windows就允许您访问。

当工作站被锁定时(无论什么原因 - 屏幕保护程序,用户输入Win-L),用户需要重新进行身份验证。

通常这就足够了 - 授权在一段时间内有效(由管理员决定)。如果(出于政策原因)您需要更细粒度的控制模型,则可以使用“LockWorkstation”理念强制用户重新进行身份验证。你需要非常小心误报(没有什么比被告知不允许他们仅仅因为他们拆下眼镜或梳理头发而被允许使用他们的计算机而使用户生气)以及你的应用程序导致系统资源耗尽的多少。

+0

感谢您的建议:) – 2009-08-30 02:06:41

1

当工作站锁定解锁它是由用户在登录(按压Alt键+ Ctrl键+德尔输入正确的密码)的唯一途径。这是您无法绕过使用应用程序API的安全功能。

+0

但是,你知道,如果自动登录,Windows将从regedit读取用户名和密码,然后使用api登录这些窗口。 现在我需要api.It必须存在,但它似乎不公开。 – 2009-08-29 15:07:05

+0

自动登录功能与解锁不同。使用AutoLogin,您的用户名和密码将存储在注册表中。解锁不是。解决这个问题的一个更好的方法可能是描述你正在尝试做什么。你可以在不解锁系统的情况下做到这一点。 – 2009-08-29 15:18:54

+0

我正在编写一些面部识别代码。 如果未被识别,系统将被锁定,否则被解锁。 我知道用户名和密码。但我希望应用程序通过我自己提供的用户名和密码参数来解锁系统。 – 2009-08-29 15:30:41

相关问题