在Windows7上禁用Ctrl + Alt + Del组合

时间:2012-03-17 16:16:36

标签: c# windows-7

我正在开发一个具有在KIOSK模式下运行的设置的应用程序(用C#编写)。我在这里只是一个挑战,即禁用 Ctrl + Alt + Del 组合事件。

过去类似的帖子中没有正确答案。请让我知道正确的行动。 考虑到,我的代码正在使用注册表项来禁用/启用选项,如果您知道任何注册表项,它将更有帮助。

6 个答案:

答案 0 :(得分:10)

CTRL + ALT + DEL 是Windows NT的secure attention sequence(及其衍生产品,如Win7)。它是保证获得操作系统注意力的一个关键组合。 SAS的全部意义在于它不能被用户程序拦截或停止。

它解决的一个安全问题是虚假登录屏幕:考虑一个看起来与普通Windows登录屏幕完全相同的屏幕。只是通过观察就没有办法说它是假的。但是,如果您习惯在登录前始终按 CTRL + ALT + DEL (有一个选项可以始终要求它对于合法屏幕),在虚假登录屏幕上按SAS将显示任务管理器或安全注意屏幕(注销,更改密码等选项)。真正的登录屏幕不会这样做;它只是停留在屏幕上。只要操作系统本身没有被替换或泄露, CTRL + ALT + DEL 将保护您免受虚假登录屏幕的侵害。如果用户程序可以拦截SAS,则不值得。

SAS从一开始就融入了Windows NT设计(它是在1993年的第一个版本中),所以绕过它并不容易。我确信有键盘过滤器驱动程序 - 或者是拦截该序列的东西 - 专为自助服务终端使用而设计。

答案 1 :(得分:2)

无法捕获 CTRL + ALT + DEL ,在所有Windows系统中都是如此。这是一个安全问题,如果用户点击 CTRL + ALT + DEL ,他或她应该确定它是操作系统和不是一些响应它的应用程序(可能是一个密码捕获的木马)。

我想捕捉 CTRL + ALT + DEL 你需要编写某种设备驱动程序。

修改:另请参阅This answer。我没试过,但问题非常相似。

答案 2 :(得分:1)

虽然它有可能,但这不是一件容易的事,也不是可以在C#中完成的事情。 This Article将向您展示如何使用组策略编辑器禁用 CTRL + ALT + DEL 。要永久禁用组合,您需要编写自己的键盘驱动程序或编写自己的GINA存根(图形标识和身份验证)。

答案 3 :(得分:0)

可以选择 CTRL + ALT + DEL 组合,但不能禁用它。 我尝试使用SetWindowsHookExWH_KEYBOARD_LL禁用它,当 CTRL + ALT + DEL时,您可以成功收到通知按,但你无法做任何事情。

答案 4 :(得分:0)

可以阻止 CTRL + ALT + DEL 组合。但是,您不能真正禁用它。据我所知,有两种可能的方法。

  1. 重新映射键盘布局。有一个注册表二进制密钥,可让您重新映射键盘布局:
HKLM\System\CurrentControlSet\Control\Keyboard Layout\Scancode Map

请检查以下内容:Disabling Windows Hot Keys

  1. 此方法可能很危险,但我还没有注意到此方法可能引起的任何副作用。 CTRL + ALT + DEL 组合由winlogon.exe处理。如果您的进程具有管理特权,则可以挂起winlogon.exe。因此,它无法处理热键,并且如果用户按下 CTRL + ALT + DEL ,则不会发生任何事情。

请检查以下内容:C++ code to disable CTRL+ALT+DEL

答案 5 :(得分:-1)

您需要执行一些P / Invoke,在 user32.dll 中,有一个名为SystemParametersInfo的方法,请查看这些资源以获取更多信息

http://pinvoke.net/search.aspx?search=SystemParametersInfo&namespace= [全部]

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724947%28v=vs.85%29.aspx

我做了类似的事情很久以前,但不再有代码,虽然我确实找到了这个(它在vb6中),但它不应该太难以理解并转换为.NET

http://www.developerfusion.com/code/1021/how-to-disable-ctrlaltdel/