检查打开的Windows应用程序并等待它关闭?

问题描述:

我有一个非常简单的程序,它运行某些步骤。每一步都应该务实。我有一些代码有问题。我在哪里依靠应用程序关闭(等待用户关闭OUTLOOK)来执行我的下一个代码块。它启动的第一个文件很好,但它读取OUTLOOK打开然后它不会工作。我要让它当用户关闭Outlook将继续打开下一个HTML文件,我曾尝试谷歌这样的事情等待退出这一行代码Process[] localByName = Process.GetProcessesByName("OUTLOOK"); 但我无法找到任何东西检查打开的Windows应用程序并等待它关闭?

static void Main(string[] args) 
{ 
    var myProcess = new Process { StartInfo = new ProcessStartInfo(@"c:\TestFile1.html") }; 
    myProcess.Start(); 

    //Launches the html file 

    Thread.Sleep(1000); 

    Process[] localByName = Process.GetProcessesByName("OUTLOOK"); 
    //used for detecting whether outlook is open 

    if (localByName.Length == 0) 
    { 
     //Only runs when outlook is closed by user 
     var myProcess2 = 
      new Process { StartInfo = new ProcessStartInfo(@"c:\TESTFILE2.html") }; 

     myProcess2.Start(); 
    } 
    else 
    { 
     Console.WriteLine("Im not going to work " + localByName.Length); 
     Console.ReadLine(); 
    } 
} 

您正在搜索的Process.WaitForExit()方法(https://msdn.microsoft.com/library/fb4aw7b8(v=vs.110).aspx

你可以用它喜欢:

foreach(var process in localByName) { 
    if(!process.HasExited()) { 
     process.WaitForExit(); 
    } 
} 
+0

,因为我得到一个错误的严重性\t代码这不起作用说明\t项目\t文件\t线\t抑制状态 错误\t CS1061 \t“处理[]”不包含关于“WaitForExit”和没有扩展方法“WaitForExit”接受类型的第一个参数定义“处理[]”可以是发现(您是否遗漏了使用指令或程序集引用?)\t Cob Maker \t C:\ Users \ bnowlan \ Documents \ Visual Studio 2015 \ Projects \ Cob_Maker2 \ Cob Maker \ Cob Maker \ Program.cs Active – ToyotaMR2

+0

我更新的答案 –