2010-04-06 79 views
4

我有以下代码来禁用Windows XP的任务管理器,但它仍然显示一条消息,“任务管理器已禁用”,我们必须按确定如何在按CTRL + ALT + DEL时停止此消息?

我该如何禁用该消息;

我想,当任何一个按下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 
+0

我不认为这是一个编程问题,我几乎可以肯定你不能禁用此消息。 – wRAR 2010-04-06 07:05:59

+1

@wRAR:我不同意,这是一个编程问题。潜在的想法应该是:我真的希望这可以在我的机器上实现吗? – lexu 2010-04-06 07:08:26

+0

@lexu:我不认为关于注册表编程的问题只是因为可以通过WinAPI更改注册表,并且您无法按照定义以编程方式对SAK执行任何操作(可能除非您以某种方式混淆了OS内部消息)。 – wRAR 2010-04-06 07:13:10

回答

3

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

编辑:

月亮,我只注意到your previous attempt at asking this same question。这对你的客户来说过分强调他们的要求。为什么任何人想要在执行正常的Windows应用程序期间禁用任务管理器?我能想到的唯一的真实场景是:

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

我正在为此目的开发一个嵌入式应用程序,我需要所有这些。 – Badr 2010-04-06 10:43:19

+1

我认为重点是“你无法从这里到达。”也许如果你发布了一个范围更广的问题(即总体目标),你会发现另一个不涉及使用恶意软件策略来实现目标的途径。 – 2010-04-06 15:48:27

相关问题