Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Process.WaitForExit()在命令窗口而不是实际应用程序上等待_C#_.net - Fatal编程技术网

C# Process.WaitForExit()在命令窗口而不是实际应用程序上等待

C# Process.WaitForExit()在命令窗口而不是实际应用程序上等待,c#,.net,C#,.net,我希望下面的代码能够运行不同的应用程序,并在它们打开并执行其他任务之后运行 但是,有些应用程序会保持命令窗口打开,而其他应用程序则不会 e、 g.outlook.exe运行正常 ProcessStartInfo startInfo = new ProcessStartInfo("C:\\Program Files\\Microsoft Office\\root\\Office16\\OUTLOOK.EXE"); Process process = new Process(); process.

我希望下面的代码能够运行不同的应用程序,并在它们打开并执行其他任务之后运行

但是,有些应用程序会保持命令窗口打开,而其他应用程序则不会

e、 g.outlook.exe运行正常

ProcessStartInfo startInfo = new ProcessStartInfo("C:\\Program Files\\Microsoft Office\\root\\Office16\\OUTLOOK.EXE");

Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
但是当运行VisualStudio代码时,命令窗口在后台保持活动状态

ProcessStartInfo startInfo = new ProcessStartInfo("C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe");

Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
似乎加载的应用程序进程是命令窗口,而不是VisualStudio代码。因此,当我删除WaitForExit()时,命令窗口消失;但我不知道应用程序何时加载

是否有其他方法可以知道Visual Studio代码是否已完全加载

等待您启动的进程实际退出(顾名思义)。如果在您启动的应用程序仍然可见时返回,这是因为您启动的进程未被使用。例如,可能会使用已在运行的Outlook进程的现有实例

如果要等待进程开始准备接受用户输入,请使用

使用WaitForInputIdle()强制应用程序的处理等待消息循环返回到空闲状态。当具有用户界面的进程正在执行时,每当操作系统向该进程发送Windows消息时,其消息循环就会执行。然后,流程返回到消息循环。当进程在消息循环中等待消息时,称其处于空闲状态。例如,当应用程序需要等待启动进程完成其主窗口的创建,然后再与该窗口通信时,此状态非常有用


您在哪个操作系统版本中遇到此问题?