如何在按CTRL + ALT + DEL时停止此消息?
我有以下代码来禁用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
键组合CTRL + ALT + DEL被拦截并处理由Windows直接,不翻译成一个按键消息发送到活动窗口等所有其它组合键。这是为了允许Windows显示安全桌面用户界面,即使机器已被盗用。虽然您可以通过操作注册表键来选择性地禁用安全桌面的某些功能,但您无法摆脱桌面本身。
编辑:
月亮,我只注意到your previous attempt at asking this same question。这对你的客户来说过分强调他们的要求。为什么任何人想要在执行正常的Windows应用程序期间禁用任务管理器?我能想到的唯一的真实场景是:
- 您是一名网络管理员,您希望在所有工作站上禁用任务管理器。在这种情况下,您可以使用组策略来禁用它,而不是注册表黑客。
- 您正在撰写Kiosk应用程序。我对Kiosk应用程序了解不多,但我确定有一个官方的Windows API来控制它们的运行方式。改为使用它。
我正在为此目的开发一个嵌入式应用程序,我需要所有这些。 – Badr 2010-04-06 10:43:19
我认为重点是“你无法从这里到达。”也许如果你发布了一个范围更广的问题(即总体目标),你会发现另一个不涉及使用恶意软件策略来实现目标的途径。 – 2010-04-06 15:48:27
我不认为这是一个编程问题,我几乎可以肯定你不能禁用此消息。 – wRAR 2010-04-06 07:05:59
@wRAR:我不同意,这是一个编程问题。潜在的想法应该是:我真的希望这可以在我的机器上实现吗? – lexu 2010-04-06 07:08:26
@lexu:我不认为关于注册表编程的问题只是因为可以通过WinAPI更改注册表,并且您无法按照定义以编程方式对SAK执行任何操作(可能除非您以某种方式混淆了OS内部消息)。 – wRAR 2010-04-06 07:13:10