在windows7上禁用Ctrl+Alt+Del组合
本文关键字:Ctrl+Alt+Del 组合 windows7 | 更新日期: 2023-09-27 18:28:11
我正在开发一个应用程序(用C#编写),它有一个在KIOSK模式下运行的设置。我在这里遇到了一个挑战,即禁用Ctrl+Alt+Del组合事件。
在过去类似的帖子中没有正确的答案。请让我知道正确的行动。考虑到我的代码正在使用注册表项来禁用/启用选项,如果你知道任何注册表项,它会更有帮助。
CTRL+ALT+DEL是Windows NT(及其类似Win7的衍生物)的安全注意序列。它是保证得到操作系统关注的一个关键组合。SAS的全部意义在于它不能被用户程序拦截或阻止。
它解决的一个安全问题是虚假登录屏幕:考虑一个看起来与正常Windows登录屏幕完全相似的屏幕。没有办法仅仅通过看它就知道它是假的。但是,如果你习惯于在登录前总是按CTRL+ALT+DEL(有一个选项总是要求合法屏幕使用它),在虚假登录屏幕上按SAS将显示任务管理器或安全注意屏幕(包括注销、更改密码等选项)。真正的登录屏幕并不能做到这一点;它只是停留在屏幕上。只要操作系统本身没有被替换或损坏,CTRL+ALT+DEL SAS从一开始就融入了Windows NT的设计中(它在1993年的第一个版本中),所以要绕过它并不容易。我确信有一些键盘过滤器驱动程序——或者一些拦截序列的东西——是为信息亭设计的。
不可能捕获CTRL+ALT+DEL,在所有Windows系统中都是这样。这是一个安全问题,如果用户点击CTRL+ALT+DEL 我想要捕获CTRL+ALT+DEL 编辑:另请参阅此答案。我没有试过,但问题很相似。
虽然这是可能的,但这不是一项容易的任务,也不是C#中可以完成的任务。本文将向您展示如何使用组策略编辑器禁用CTRL+ALT+DEL。不过,要永久禁用组合,您需要编写自己的键盘驱动程序或编写自己的GINA存根(图形识别和身份验证)。
可以选择CTRL+ALT+DEL试着用SetWindowsHookEx
和WH_KEYBOARD_LL
禁用它,当按下CTRL+ALT+DEL时,你可以成功地得到通知,但你对此无能为力。
可以阻止CTRL+ALT+DEL组合。然而,你不能真的禁用它。据我所知,有两种可能的方法。
- 重新映射键盘布局。有一个注册表二进制键允许您重新映射键盘布局:
HKLM'System'CurrentControlSet'Control'Keyboard Layout'Scancode Map
请查看:禁用Windows热键
- 这种方法可能很危险,但我没有注意到这种方法会引起任何副作用。CTRL+ALT+DELCTRL+ALT+DEL,则不会发生任何事情
请检查一下:C++代码禁用CTRL+ALT+DEL。
您将需要执行一些p/Invoke,在user32.dll中,有一个名为SystemParametersInfo
的方法,请查看这些资源以了解更多信息
http://pinvoke.net/search.aspx?search=SystemParametersInfo&namespace=[All]
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/