我有以下代码来禁用 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 应用程序执行期间禁用任务管理器?我能想到的唯一真实场景是:
- 您是一名网络管理员,您希望在所有工作站上禁用任务管理器。在这种情况下,您将使用组策略来禁用它,而不是注册表黑客。
- 您正在编写一个 Kiosk 应用程序。我对 Kiosk 应用程序知之甚少,但我确信在某处有一个官方 Windows API 可以控制它们的运行方式。改用它。
关于c - 如何在按 CTRL + ALT + DEL 时停止此消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2583179/