C#运行时更改进程文件名

C#运行时更改进程文件名,c#,hyperlink,process,youtube,C#,Hyperlink,Process,Youtube,我正在为我正在开发的Twitch机器人添加一项功能,当队列中出现新视频时,它将自动打开youtube视频。尝试将创建的进程文件名从process.StartInfo.filename=youtubeLink1切换到youtubeLink2时遇到问题。它说,当我试图终止进程并重新启动它时,进程已经退出。无论何时,是否都可以轻松切换此选项?请不要推荐WebBrowser控件,因为我已经尝试过了。由于音乐视频的版权,它们将不会在WebBrowser控件中播放(除非您知道解决方法)。谢谢。问题在于,在尝

我正在为我正在开发的Twitch机器人添加一项功能,当队列中出现新视频时,它将自动打开youtube视频。尝试将创建的进程文件名从process.StartInfo.filename=youtubeLink1切换到youtubeLink2时遇到问题。它说,当我试图终止进程并重新启动它时,进程已经退出。无论何时,是否都可以轻松切换此选项?请不要推荐WebBrowser控件,因为我已经尝试过了。由于音乐视频的版权,它们将不会在WebBrowser控件中播放(除非您知道解决方法)。谢谢。

问题在于,在尝试更改其
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";
...

除了CloseMainWindow()之外,我几乎已经有了这段代码。我补充说,但它仍然不起作用。以下是我得到的错误:System.InvalidOperationException:进程已退出,因此请求的信息不可用。如果我不使用第一个窗口,CloseMainWindow()或Close()将失败。如果我不使用第一个窗口,您的意思是什么?