3

众所周知,我们可以使用“user32.dll”中的“LockWorkStation()”等api来锁定窗口。但是怎么解锁呢?

例如,如果我首先运行一个应用程序,我希望该应用程序在 30 秒后自行解锁窗口。怎么做?换句话说,如果自动登录,windows 将从 regedit 读取用户名和密码,然后使用 api 登录。现在我需要api。它必须存在,但似乎没有公开。

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

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

4

2 回答 2

8

推广我的评论,因为它需要更多解释:

您真的想为 Windows Vista 及更高版本编写GINA(用于 XP)或凭据提供程序。

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

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

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

于 2009-08-29T17:19:32.667 回答
1

当工作站被锁定时,解锁它的唯一方法是用户登录(按Alt++并输入正确的密码)CtrlDel这是您无法使用应用程序 API 规避的安全功能。

于 2009-08-29T14:59:56.030 回答