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

时间:2017-03-01 13:24:45

标签: c#

我有一个非常简单的程序,它运行某些步骤。每一步都应该以实用的方式运行。我遇到了一些代码问题。我依赖应用程序关闭(等待用户关闭OUTLOOK)来执行我的下一个代码块。它启动第一个文件很好,但它将OUTLOOK视为打开然后它不会工作。我希望当用户关闭Outlook时它会继续并打开我尝试过Google的下一个HTML文件,例如等待退出此代码行Process[] localByName = Process.GetProcessesByName("OUTLOOK"); 但我找不到任何东西

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();
    }
}

1 个答案:

答案 0 :(得分:2)

您正在搜索foreach(var process in localByName) { if(!process.HasExited()) { process.WaitForExit(); } } 方法(https://msdn.microsoft.com/library/fb4aw7b8(v=vs.110).aspx

您可以像以下一样使用它:

GET         /photos
GET         /photos/create
POST        /photos
GET         /photos/{photo}
GET         /photos/{photo}/edit
PUT/PATCH   /photos/{photo}
DELETE      /photos/{photo}