2010-04-06 58 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

相關問題