c - 如何在按 CTRL + ALT + DEL 时停止此消息?

标签 c windows

我有以下代码来禁用 Windows XP 的任务管理器,但它仍然显示一条消息“任务管理器已禁用”,我们必须按确定

我怎样才能禁用这条消息;

我希望当任何人按下 CTRL+ALT+DEL 时,即使没有消息对话框也不会发生任何事情。

HKEY hMykey;
DWORD pDWDisp;
unsigned char cData[1];
cData[0]='1';
LONG lRes = RegCreateKeyEx(HKEY_CURRENT_USER,
               "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\system",
               0,"DisableTaskMgr",REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,
               NULL,&hMykey,&pDWDisp); // Open a key for edit

if(lRes != ERROR_SUCCESS)
{
    MessageBox(0,"Error opening key","",MB_OK);
    exit(0);// Shutdown on fail
}//End if

lRes = RegSetValueEx(hMykey,"DisableTaskMgr",0,REG_DWORD,
                   (LPBYTE)cData,sizeof(cData));// Add your key value

if(lRes != ERROR_SUCCESS)
{
    MessageBox(0,"Error saving record","",MB_OK);
    RegCloseKey(hMykey);
    exit(0);// Shutdown on fail

}//End if

最佳答案

组合键CTRL+ALT+DEL被Windows直接拦截处理,没有翻译成按键消息发送给像所有其他组合键一样激活窗口。这是为了允许 Windows 显示安全桌面 UI,即使计算机已受到威胁。虽然您可以通过操作注册表项有选择地禁用安全桌面的某些功能,但您无法摆脱桌面本身。

编辑:

月亮,我刚注意到your previous attempt at asking this same question .这有点像您的客户过度指定他们的要求。为什么任何人都想在正常的 Windows 应用程序执行期间禁用任务管理器?我能想到的唯一真实场景是:

  1. 您是一名网络管理员,您希望在所有工作站上禁用任务管理器。在这种情况下,您将使用组策略来禁用它,而不是注册表黑客。
  2. 您正在编写一个 Kiosk 应用程序。我对 Kiosk 应用程序知之甚少,但我确信在某处有一个官方 Windows API 可以控制它们的运行方式。改用它。

关于c - 如何在按 CTRL + ALT + DEL 时停止此消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2583179/

相关文章:

.net - 来自 Windows 批处理脚本的文件/文件夹选择器对话框

linux - Logstash 保持运行而不会崩溃或输出(windows 以及 linux)

c - 从 C 中的输入整数集中查找最大素数

c - 在 C 中打开文件后 fscanf 出现问题

c - 生产者消费者示例中的信号量同步出错

c - 在 C 函数中删除链表节点不会传输到调用函数

python - 如何使用 Python 写入硬件寄存器?

c++ - 如何获取系统的IP地址

windows - Windows 64 位处理器上的最大进程大小是多少

windows - 在 Windows 上运行 katalon docker