2010-03-15 69 views
1

hii ....我正在開發一個窗口應用程序如何禁用像control + alt + del在運行應用程序時執行的特殊鍵,我使用keyhook方法來禁用幾乎所有的鍵,如windows,alt + f4等...如何禁用c#窗口應用程序中的特殊鍵...?

+0

爲什麼要這樣做?這是可能的,但我敦促你重新考慮它的必要性。 – 2010-03-15 04:56:14

+0

這個用戶可以關閉應用程序..但在我的應用程序用戶沒有特權做這種事情..所以必須限制這樣的行動 – deepu 2010-03-15 06:59:58

回答

0

您無法禁用Ctrl + Alt + Del,它的級別非常低,否則將被視爲安全風險。是否有任何特定的原因要禁用它?

如果您正在編寫Kiosk風格的應用程序,您需要編寫一個新的GINA DLL來捕獲Ctrl-Alt-Del序列並忽略它。或者只是使用一個鍵盤,不一個Ctrl,Alt或Del鍵...

+0

感謝您的信息,但希望是有可能與吉娜dll ... – deepu 2010-03-15 05:09:52

+0

我現在在做一個家庭桌面..不適用於亭系統..然後,雖然它可能使用吉娜DLL的方法..或是任何簡單mehtod ...? – deepu 2010-03-15 05:43:23

0

Ctrl + Alt + Del是「特殊」的原因。

你在寫什麼軟件?

的一點是,你強迫我使用鼠標...

編輯

即使你沒有寫一個新的GINA DLL,我會感到驚訝,如果你可以安裝它。如果沒有在測試模式下運行,您將無法在Windows x64操作系統上運行。我不允許您這樣做。

那麼,什麼樣的軟件需要你損害我的操作系統安裝?

+1

你好它真的是一個特殊的combinaton ..但對於mi應用程序客戶端不希望這樣的鍵得到執行。因爲一個正常的鍵盤正在使用,,,, – deepu 2010-03-15 05:12:21

+0

我認爲它實際上不是很好使用它在桌面系統,但不知何故,我必須得到它的解決方案..感謝您的信息... – deepu 2010-03-15 06:48:45

0

要做到這一點有很多方法來編寫自己的gina.dll(圖形識別和身份驗證)。

但是有一個簡單的方法可以通過使用Windows註冊表來實現。

爲此,我們必須在場所要編輯註冊表:

軟件\微軟\的Windows \ CurrentVersion \政策\系統

通過改變DisableTaskMgr的值設置爲1

這是以編程方式在C#中執行代碼的代碼#

using Microsoft.Win32; 
public void KillCtrlAltDelete() 
     { 
      RegistryKey regkey; 
      string keyValueInt = "1"; 
      string subKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"; 
      try 
      { 
       regkey = Registry.CurrentUser.CreateSubKey(subKey); 
       regkey.SetValue("DisableTaskMgr", keyValueInt); 
       regkey.Close(); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.ToString()); 
      } 
     } 
相關問題