我可以挂钩“Ctrl + Alt + Del”的返回值吗?

时间:2010-12-28 10:01:29

标签: c++ c mfc

在Windows上,当我们按 ctrl + alt + del

但是当我们点击 ctrl + alt + del 时,我想显示我的应用程序(MFC)。

所以我需要 ctrl + alt + del 的返回值。

如何从 ctrl + alt + del 获取返回值或从中返回值是什么?

4 个答案:

答案 0 :(得分:9)

你能详细说明你想要达到的目标吗?您可能不会(并且肯定不应该)重新挂钩安全注意序列以执行特定于应用程序的操作。但是,您可以执行的操作是自定义或替换负责处理SAS的登录组件(GINA) - 这可能很有用,例如,在要限制用户注销的kiosk系统中。

MSDN杂志在不久前发表了一篇文章,你可能会觉得有趣:http://msdn.microsoft.com/en-us/magazine/cc163803.aspx

答案 1 :(得分:6)

在Windows Ctrl + Alt + Del 组合由Winlogon进程处理。由于安全原因,您不能干涉它。

答案 2 :(得分:3)

你应该自己编写msgina.dll;这不是一件容易的事,但是这样做你将能够控制的不仅仅是 Ctrl + Alt + Del

答案 3 :(得分:0)

Ctrl + Alt + Del 是Windows早期版本中进程winlogon注册的系统热键(即2000 / XP pre SP1)。您无法覆盖注册或挂钩WM_HOTKEY消息(至少不是以安全的方式)。可以理解的是,操作系统更喜欢操作系统(特别是Winlogon进程)而不是第三方程序来获取用户的密码,但希望在用户想要通过指纹,智能卡等进行身份验证时保持灵活性{{3} }。

在Windows 2000 / XP上,定制登录体验的官方方法是编写自己的Gina(详见ig2r回复中链接的文章),但Gina可能会相互冲突(例如带有指纹登录的A Think Pad笔记本电脑有问题使用McAfee Safeboot,pcAnywhere等)。吉娜在Vista中走了。

在Windows Vista或更高版本中,您可以自定义登录体验read more here。它的可扩展性有限,但您仍然可以通过ICredentialProviderCredentialEvents :: OnCreatingWindow获得HWND,以防您想要显示一个对话框以响应凭据提供程序事件。记录的使用HWND作为对话的所有者的方法(win32或MFC或其他)。

原因一直是credential provider,只要您知道每个Windows版本的驱动程序开发和用户模式 ​​- 内核模式通信。 keyboard driver filter approach,