2017-10-28 92 views
-2

我必須通過只知道filename.exe擴展名的button_click事件來打開process.exe。
有可能嗎?用兩個詞我需要做一個game.exe庫,如果發現filename.exe需要啓動進程filename.exe, 。 我想避免向客戶詢問程序位置的完整路徑,並且我不想使用OpenFileDialog()進行瀏覽。我在這裏呆了三天。因此,C#打開一個不知道位置路徑的進程

filename.exe=textbox1.text 
SystemDiagnostic.Process(..).Start(filename.exe) 

如果文件和調試程序位於同一目錄中,則只會打開該文件。

我需要一個遞歸搜索,並且如果找到該文件打開該過程嗎?我如何在所有@"C:\中搜索filename.exe

謝謝大家對不起英文不好。

+0

您或其他供應商是否部署了該文件?你甚至不能假定它在C:卷中。 – kennyzx

+0

其他供應商。謝謝。 – user8847930

回答

0

如果該文件是由你展開,像它是由你來製作安裝程序的話,你可以添加文件到PATH環境變量中包含目錄,那麼你可以簡單地通過

啓動它
Process.Start(「filename.exe」) 

而不必指定該文件的完整路徑。

如果它超出了你的控制範圍,但是有一些關於該文件位置的痕跡,例如,如果它來自已知的供應商,並且該文件具有默認位置,或者存在類似於「InstallLocation」的內容該文件的註冊表,您可以查詢註冊表以獲取完整路徑,然後啓動它。

你最後的手段將掃描該文件的整個磁盤。但這太糟糕了,不可靠和緩慢......而且事情很容易出錯。我強烈地警告你不要這樣做。

如果您必須選擇最後一種方法,您可能會發現this post有用。請記住檢查其他屬性,如版本號,發行商等,以防止最終調用錯誤的文件時碰巧有該名稱。

相關問題