2011-06-10 76 views
4

我試圖運行explorer.exe來打開一個文件夾,我使用System.Diagnostics.Process來做到這一點。C#中的Process.Start()不適用於非管理員用戶

如果應用程序由具有管理員權限但用戶不是管理員的用戶運行,則它可以正常工作。

我試過了: - 通過提供ProcessStartInfo來運行它。 - 從本地機器獲取explorer.exe進程並使用它進行運行。 - 在IExplore.exe上運行它。

以上都不適用於非管理員用戶。 ProcessStartInfo讓你提示輸入管理員憑據,但這是不可取的,因爲許多用戶不是管理員..

我知道我可以通過使用一些本地方法(我已經嘗試過),SHOpenFolderAndSelectItems,但我沒有真正做到這一點要使用本機代碼..

+1

後的代碼,在...的ProcessStartInfo – 2011-06-10 10:04:25

+1

「不工作」 /「失敗」 - 你能闡述? - 你有錯誤信息嗎?該過程是否開始並立即退出? – 2011-06-10 10:13:38

+0

var processStartInfo = new ProcessStartInfo { FileName =「explorer.exe」, Arguments =「C:\\」 }; Process.Start(processStartInfo); – George 2011-06-10 10:33:46

回答

3

這可能是值得考慮看看你正在使用這個Process.Start Permissions Problem

+0

謝謝,但這傢伙在一個目錄中運行'cmd.exe'進程沒有有權寫入日誌文件。 我在找什麼,即使用戶不是管理員,也可以打開Windows資源管理器。 – George 2011-06-10 10:38:35

+1

您是否嘗試將ProcessStartInfo.WorkingDirectory設置爲臨時目錄? – Winston 2011-06-10 11:09:23

+0

我只是做了..我仍然得到相同的結果 – George 2011-06-10 11:39:49

相關問題