在VB.net中,如何以編程方式啓動.exe文件?有沒有辦法檢查文件是否在那裏?管理.exe文件
我知道有一些方法來檢查使用System.IO,但我不知道。然而,我甚至沒有絲毫的線索知道如何啓動.exe,如果它在那裏,那麼謝謝你的幫助!
在VB.net中,如何以編程方式啓動.exe文件?有沒有辦法檢查文件是否在那裏?管理.exe文件
我知道有一些方法來檢查使用System.IO,但我不知道。然而,我甚至沒有絲毫的線索知道如何啓動.exe,如果它在那裏,那麼謝謝你的幫助!
使用System.IO.File.Exists和System.Diagnostics.Process.Start。
Dim someExe As String = "MyAppsPath\some.exe"
Dim fullPath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), someExe)
If File.Exists(fullPath) Then 'Checks for the existence of the file
Process.Start(fullPath) 'Executes it
End If
查看System.Diagnostics.Process班。 MSDN頁面上有一個完美的代碼片段,所以我不會在這裏複製它。
關於Process的整潔事情是,您可以實際啓動一個文件(比如說一個HTML文件),它將使用用戶的默認瀏覽器打開。許多常用程序也接受命令行參數 - 許多瀏覽器接受URL作爲命令行參數,因此您可以打開特定的URL。
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx
的OpenFileDialog OD =新的OpenFileDialog(); 串路徑= od.ToString() System.Diagnostics.Process.Start(路徑)
可以使用的System.Diagnostics.Process執行一個.EXE,甚至可以捕獲輸出,如果它是一個控制檯/命令行應用程序。 你將不得不像這樣(但記住,這是簡化了不少!):
dim process as System.Diagnostics.Process
process.StartInfo.FileName = "program.exe" ' You need to be smarter here!
process.StartInfo.Arguments = "whatever command line options you need"
process.Start()
要檢查程序仍在運行,你叫
process.HasExited()
如果你想捕捉您需要將StartInfo.RedirectStandardOutput設置爲True。
如何檢查/ program files /中的.exe文件? – Cyclone 2009-09-07 16:41:04
我已更新示例代碼以從%ProgramFiles% – 2009-09-07 16:47:29
@Cyclone獲取它:在許多情況下,向用戶確認特定應用的位置是個好主意 - 我的TotalCommander版本讓我指定壓縮實用程序的位置在設置窗口中。這樣,我保證有正確的路徑,否則用戶發生錯誤,並且可以通知他們。根據您的需求,這可能會或可能不會有所幫助。最終,如果程序是不作爲安裝的一部分提供的程序,則允許用戶指定程序的位置,即使您認爲您知道! – 2009-09-07 17:03:10