2010-03-05 173 views
4

我正在嘗試編寫關閉資源管理器然後運行另一個程序的程序。
嘗試使用下面的代碼以關閉資源管理器時,我得到了一個問題:自動關閉Windows資源管理器

foreach (Process p in Process.GetProcesses()) 
       if (p.MainModule.ModuleName.Contains("explorer")) 
        p.Kill(); 

可有人請讓我知道它爲什麼是這樣做的,並提供瞭解決方案
CHEERS

附:這不是一個惡意程序,它會運行一個遊戲,當瀏覽器在後臺時無法正常工作

+0

以供參考,哪個遊戲是這樣的? – 2010-03-05 14:24:59

+0

Worms Armageddon - 新版。我認爲問題是隻有Windows 7仍然是一個非常好的遊戲 – harryovers 2010-03-05 14:26:12

+0

你有什麼問題?請注意,當您終止shell進程時,通常會自動重新啓動。 – 2010-03-05 14:26:33

回答

5

問題是,您可以在任何一個時間點運行多個版本的資源管理器。 。你通常至少需要其中一個。承載開始菜單的外殼實際上是資源管理器的一個實例。所以如果你關閉了所有的資源管理器實例,你也會關閉主shell,這不是你想要做的。

但是,要做到讓Explorer的所有實例,並殺死他們以最快的方式是:

foreach (Process p in Process.GetProcessesByName("explorer")) 
{ 
    p.Kill(); 
} 
+0

這就是我想要做的,我現在手動做,以玩遊戲。我認爲這會更好,如果我有一個按鈕關閉資源管理器,然後開始遊戲,另一個啓動資源管理器 – harryovers 2010-03-05 14:30:49

+0

@harryovers - 好的...我做了一個編輯,然後顯示正確的代碼。 – Nick 2010-03-05 14:32:42

+1

@harryovers - 正如在不同的評論中提到的那樣......如果Shell關閉,Shell通常會自動重啓......所以這可能無法很好地工作。 – Nick 2010-03-05 14:44:44

5

沒有完全退出瀏覽器中,參見問題Gracefully Exit Explorer (Programmatically)簡單無證方式。它適用於開發外殼擴展的開發人員。

的步驟適用於Windows XP和Windows 7的不同:

的Windows XP: 打開關機對話框(開始>關機),則取消該對話框,按CTRL-SHIFT-ALT-ESC(或按住CTRL -SHIFT-ALT並用鼠標按下按鈕)。

Windows 7: 打開開始菜單,然後在按住CTRL-SHIFT的同時右鍵單擊開始菜單的空白區域,請參閱screenshot。出現一個上下文菜單,其中第二個條目是「退出瀏覽器」(沒有CTRL-SHIFT的上下文菜單隻有一個條目)

+0

CTRL + SHIFT是管理員鍵的修飾符,您可以通過按住並點擊程序來以管理員身份運行程序。雖然這將工作我用一個稱爲任務殺死的proram然後用一個bash腳本來殺死資源管理器,並啓動程序,我想在一次點擊 – harryovers 2011-07-04 09:46:29

相關問題