2009-09-07 51 views
2

在VB.net中,如何以編程方式啓動.exe文件?有沒有辦法檢查文件是否在那裏?管理.exe文件

我知道有一些方法來檢查使用System.IO,但我不知道。然而,我甚至沒有絲毫的線索知道如何啓動.exe,如果它在那裏,那麼謝謝你的幫助!

回答

2

使用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 
+0

如何檢查/ program files /中的.exe文件? – Cyclone 2009-09-07 16:41:04

+0

我已更新示例代碼以從%ProgramFiles% – 2009-09-07 16:47:29

+0

@Cyclone獲取它:在許多情況下,向用戶確認特定應用的位置是個好主意 - 我的TotalCommander版本讓我指定壓縮實用程序的位置在設置窗口中。這樣,我保證有正確的路徑,否則用戶發生錯誤,並且可以通知他們。根據您的需求,這可能會或可能不會有所幫助。最終,如果程序是不作爲安裝的一部分提供的程序,則允許用戶指定程序的位置,即使您認爲您知道! – 2009-09-07 17:03:10

2

查看System.Diagnostics.Process班。 MSDN頁面上有一個完美的代碼片段,所以我不會在這裏複製它。

關於Process的整潔事情是,您可以實際啓動一個文件(比如說一個HTML文件),它將使用用戶的默認瀏覽器打開。許多常用程序也接受命令行參數 - 許多瀏覽器接受URL作爲命令行參數,因此您可以打開特定的URL。

1

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx

的OpenFileDialog OD =新的OpenFileDialog(); 串路徑= od.ToString() System.Diagnostics.Process.Start(路徑)

+0

那不是vb.net,如果是的話,那代碼將無法工作。 – 2009-09-07 16:33:52

+0

任何分號都絕對不是vb.net lol,至少在我有限的知識的基礎上。 – Cyclone 2009-09-07 16:40:28

+0

我應該改變字符串昏暗,而不是字符串路徑,必須作爲整數昏暗的路徑。我在C#中編程(默認) – Alynuzzu 2009-09-07 16:40:49

1

可以使用的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。