2017-04-25 145 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