繁体   English   中英

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

[英]Disable Ctrl+Alt+Del Combination on windows7

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

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

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

它解决的一个安全问题是虚假登录屏幕:考虑一个看起来与正常 Windows 登录屏幕完全相同的屏幕。 仅凭外观无法判断它是假的。 但是,如果您习惯于在登录前始终按CTRL + ALT + DEL (有一个选项可以始终要求合法屏幕使用它),则在错误登录屏幕上按 SAS 将调出任务管理器或安全注意屏幕(带有注销、更改密码等选项)。 真正的登录屏幕不会这样做; 它只是停留在屏幕上。 只要操作系统本身没有被替换或受到损害, CTRL + ALT + DEL将保护您免受虚假登录屏幕的影响。 如果用户程序可以拦截 SAS,它就没有任何价值。

SAS 从一开始就融入到 Windows NT 设计中(它是 1993 年的第一个版本),因此绕过它并不容易。 我确信有键盘过滤器驱动程序——或拦截该序列的东西——是专为信息亭使用而设计的。

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

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

编辑:另请参阅此答案 我没有尝试过,但问题非常相似。

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

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

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

请查看: 禁用 Windows 热键

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

请查看: 禁用 CTRL+ALT+DEL 的 C++ 代码

可以选择CTRL + ALT + DEL组合,但不能禁用它。
我尝试使用SetWindowsHookExWH_KEYBOARD_LL禁用它,当按下CTRL + ALT + DEL时,您可以成功收到通知,但您无能为力。

您将需要执行一些 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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM