检查打开的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();
}
}
,因为我得到一个错误的严重性\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
我更新的答案 –