我有一个WPF应用程序。单击按钮,应用程序将使用Process.Start()
方法“启动” VLC。我在2台计算机上测试了这个简单的应用程序:
public partial class MainWindow : Window
{
...
private void RunVlcButtonClick(object sender, RoutedEventArgs e)
{
string applicationFile = "vlc.exe";
MainWindow.RunProcess(applicationFile);
}
private static Process RunProcess(string applicationFile, string arguments = "")
{
Console.WriteLine($"Run process: {applicationFile} {arguments}");
Process process = MainWindow.GetProcess(applicationFile, arguments);
bool result = process.Start();
if (!result)
Console.WriteLine($"Can't start {applicationFile} {arguments}");
return process;
}
private static Process GetProcess(string applicationFile, string arguments)
{
ProcessStartInfo processStartInfo = new ProcessStartInfo(applicationFile, arguments);Process.StandardOutput StreamReader.
processStartInfo.RedirectStandardOutput = true;
processStartInfo.RedirectStandardError = true;
processStartInfo.RedirectStandardInput = true;
processStartInfo.UseShellExecute = false;
processStartInfo.CreateNoWindow = true;
Process cmdProcess = new Process();
cmdProcess.StartInfo = processStartInfo;
cmdProcess.EnableRaisingEvents = true;
return cmdProcess;
}
}
如您所见,这并不新鲜也不复杂。在第一台计算机可以正常工作的情况下,,但是在其他VLC实例中,当主应用程序关闭时启动该计算机。
第一台计算机是Windows 10 Pro(内部版本16299)台式机。
第二台计算机是Windows 10 Enterprise(内部版本10240)笔记本电脑。
您知道为什么会这样吗?