2015-11-21 45 views
1

我試圖按F7殺死遊戲進程。當遊戲最小化並且表單處於最佳狀態時,該應用可以正常工作。但是,當我玩遊戲(最大化)的應用程序不起作用。我能做些什麼來解決這個問題?遊戲殺手無法在遊戲c中工作#

這是我的代碼

public Form1() 
    { 
     InitializeComponent();     
    } 

    private void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.F7) 
     { 
      foreach (Process p in System.Diagnostics.Process.GetProcessesByName("processs")) 
      { 
       p.Kill(); 
      } 
     } 
    } 
+0

您需要通過p/invoke直接掛入Windows鍵盤事件。我不確定你是如何說上面的代碼工作的,一個表單不應該在構造函數中接收關鍵事件,除非你可能在打開表單時關閉了鍵。 –

回答

0

當你按下一個鍵只有活動窗口會得到的消息。如果這不是真的,那麼每個正在運行的程序將不得不主動忽略擊鍵。

如果您希望即使在沒有活動窗口的情況下也可以截取密鑰,那麼您需要一個全局鍵盤鉤子。網絡上散佈着這樣一些例子。第一眼看起來很有前景的是this article on CodeProject

+0

除[不能使用託管代碼創建全局鉤子](https://support.microsoft.com/en-us/kb/318804) –