【发布时间】:2020-02-21 18:56:08
【问题描述】:
如何在 Window OS 中使用 C 禁用 ctrl+alt+del?我试过了
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, true, &bOldState, 0);
但它对我不起作用。请您指导我,以便我可以实现它。
【问题讨论】:
-
你想做什么?写病毒?
如何在 Window OS 中使用 C 禁用 ctrl+alt+del?我试过了
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, true, &bOldState, 0);
但它对我不起作用。请您指导我,以便我可以实现它。
【问题讨论】:
您使用的SPI_SETSCREENSAVERRUNNING 参数是为Windows 95 上的屏幕保护程序设计的。它适用于Windows 95/98/ME 及更早版本。它不适用于 Windows NT/2000/XP/Vista。
Ctrl-Alt-Del 热键组合可以在 Windows NT/2000/XP/Vista 上禁用,但通常不能从应用程序(用户模式)。以下是我熟悉的机制。
我还没有在 Windows 7 上尝试过,但我确信这些技术中的一些或全部仍然可以在那里工作。
GINA DLL 可以拦截 CAD 序列,但这可能有点过头了。它之所以有效,是因为 Windows 注册了 CAD 热键并向 GINA DLL 发送回调以在您按下它时处理该操作。替换的 GINA DLL 可以以不同的方式处理回调(忽略它),但这样做可能会很棘手,并且要与使用其他自定义 GINA DLL 的其他登录机制保持兼容。
您可以编写一个键盘驱动程序来拦截它。如果您搜索它,网上有相当不错的免费源代码。寻找 Ctrl2Cap 驱动程序和类似的东西。 (此驱动程序重新映射 Caps Lock 键和 Ctrl 键以模仿旧的键盘布局。)
您还可以使用扫描代码映射器“重新映射”注册表中的键以实现您的目标。他们在 Windows 2000 中添加了这个。它是有限的,但在某些情况下是可行的。有关详细信息,请参阅this MSDN page。不过,请注意限制。例如,需要重启才能使更改生效。
最后,您可以使用 Windows Admin Toolkit 通过管理设置禁用任务管理器和其他功能。它仍然会打断一切,向您显示“您不能那样做”对话框。但至少它可以限制用户对机器的访问。
我为 Windows 95/98 编写了一个设备驱动程序(上面列表中的选项 2)来阻止 Ctrl-Alt-Del( 13 年前),后来用于 Windows NT/2000/XP。我卖了很多。如果你看,它们还在附近。
【讨论】:
您是要禁用 ctrlaltdelete 的登录要求,还是要完全禁用热键?我不相信后者是可能的。它是一个内置的操作系统级覆盖,旨在规避任何用户级程序。
【讨论】:
在 Windows XP 中,您可以编写一个 GINA DLL 来执行此操作。不过,Windows 7 似乎不再有 GINA DLL。可能有某种策略设置来完成相同的操作,但如果是这样,我还没有看到它记录在案。
【讨论】:
Ctrl-Alt-Del 是安全注意序列。目标是让用户与操作系统安全地通信。按照设计,它不能被程序禁用 - 在这种情况下它不再是安全的。
【讨论】: