2012-07-19 212 views
1

我使用這個代碼:WaitForExit默認瀏覽器

Process p = new Process(); 
ProcessStartInfo si = new ProcessStartInfo(); 
si.UseShellExecute = true; 
si.FileName = Url; 
p = Process.Start(si); 
p.WaitForExit(); 

要在缺省瀏覽器中打開「URL」。我想等待用戶關閉瀏覽器,然後再執行代碼。但是打開IE中的地址(我的默認瀏覽器)後,它拋出一個對象引用未設置到對象的實例,並強調

p.WaitForExit(); 

問題是什麼?我只想等到它完成。感謝您的任何建議。

回答

1

ProcessStartInfo.FileName獲取或設置應用程序或文檔啓動。 我所做的是通過在文件名中應用程序的路徑,所以當的Process.Start創建它看起來參數和你的情況創建一個實例它不

Process p = new Process(); 
ProcessStartInfo si = new ProcessStartInfo(); 
p.StartInfo = si; 
si.UseShellExecute = true; 
si.FileName = @"C:\Program Files (x86)\Internet Explorer\iexplore.exe"; 
si.Arguments = "http://www.stackoverflow.com"; 
p.Start(); 
p.WaitForExit(); 
0
Process.Start(new ProcessStartInfo() 
      { 
       UseShellExecute = true, 
       FileName = "http://google.com",     
      }).WaitForExit(); 
+0

它給了我下面的錯誤:沒有進程關聯與此對象。在p.waitforexit(); – 2012-07-19 20:08:45

+0

是的,這確實因爲某些原因工作。我編輯了我的答案,這似乎是工作。 – STO 2012-07-19 20:19:37

+0

不,這是行不通的。我認爲這是因爲Internet Explorer選項卡在不同的過程中分離,但仍然只能作爲一個應用程序。 – 2012-07-22 15:48:49