2014-04-01 88 views
3

我想啓動資源管理器進程,任務欄等,但是當我啓動它時(在代碼中),我只有文件資源管理器的窗口開放,而不是其餘。但是,如果我在taskManager中執行「explorer.exe」,它就會起作用。只是當我在Windows 7 64位機器上執行此操作時。在Windows 7 32位上,它工作正常! Si我們如何爲64位Windows做到這一點?無法在c#中啓動資源管理器進程,只是窗口文件資源管理器

以下是我的代碼:

Process Appli = new Process(); 
Appli.StartInfo.FileName = "explorer.exe"; 
Appli.StartInfo.UseShellExecute = false; 
Appli.StartInfo.RedirectStandardOutput = false; 
Appli.Start(); 

而且當它執行,我只是有我的桌面(無圖標)與窗口文件瀏覽器。

我的屬性。平臺這個項目是「任何CPU」

誰能幫助我嗎?

非常感謝!

+0

是的,你加載瀏覽器時會發生這種行爲。較早版本的Windows用於從任務管理器獲取此版本,但不是較新版本。我相信當exe加載並交換行爲時,它必須檢測啓動它的過程。 – Dreamwalker

+0

直接加載瀏覽器的原因是什麼? – Dreamwalker

+0

你有沒有試過將一個目錄作爲參數傳遞給explorer.exe? – andyp

回答

3

即使您指定了AnyCPU,Visual Studio也可以默認指定「prefer 32 bit」選項。如果是這樣的話,那麼它產生的explorer.exe將是一個32位的進程,不會是shell。

如果關閉項目屬性/ Build下的「prefer 32 bit」標誌,那麼您的應用程序將作爲64位應用運行,並將產生64位explorer.exe作爲shell。

+1

超級有用!非常感謝你! – deltonio2

+0

非常好......很高興能有幫助! – DotThoughts