2017-04-25 60 views
0

我正在開發一個功能,以便在隊列中出現新視頻時開發自動打開YouTube視頻的Twitch機器人。我在嘗試將創建的進程文件名從process.StartInfo.FileName = youtubeLink1切換到youtubeLink2時遇到問題。它說,當我試圖殺死它並重新啓動時,該進程已經退出。無論如何,無論何時都可以輕鬆切換。請不要推薦WebBrowser控件,因爲我已經嘗試過了。由於音樂視頻的版權,他們不會在WebBrowser控件中播放(除非您知道解決此問題的方法)。謝謝。C#在運行時更改進程FileName

回答

0

問題在於,在嘗試更改其StartInfo屬性之前,您並未真正關閉該進程或正在等待其退出事件,而這無法完成。

嘗試使用WaitForExit()Close()像下面的代碼:

Process _process = new Process(); 
_process.StartInfo.FileName = "youtubeLink1.exe"; 
_process.Start(); 
_process.WaitForExit(); 

// Close process by sending a close message to its main window. 
_process.CloseMainWindow(); 

// Free resources associated with process. 
_process.Close(); 

// Now you can change the name 
_process.StartInfo.FileName = "youtubeLink2.exe"; 
... 
+0

我幾乎已經擁有比其他CloseMainWindow代碼()。我補充說,但它仍然不起作用。這是我得到的錯誤: System.InvalidOperationException:進程已退出,所以請求的信息不可用。 – Edude15000

+0

?錯誤信息在哪裏? –

+0

如果我不使用第一個,則在CloseMainWindow()或Close()上失敗。 – Edude15000