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

时间:2010-04-06 07:04:14

标签: 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

1 个答案:

答案 0 :(得分:3)

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

修改

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

  1. 您是网络管理员,并且要在所有工作站上禁用任务管理器。在这种情况下,您将使用组策略禁用它,而不是注册表黑客。
  2. 您正在撰写Kiosk应用程序。我对Kiosk应用程序了解不多,但我确信有一个官方的Windows API来控制它们的运行方式。请改用它。