2017-03-01 8 views
0

私はあるステップを実行する非常に簡単なプログラムを持っています。各ステップは実際に実行する必要があります。私は少しのコードで問題を抱えています。私が次のコードブロックを実行するために閉じる(OUTLOOKを閉じるのを待つ)アプリケーションに頼っているところです。最初のファイルは正常に起動しますが、OUTLOOKが開いていると読み込まれても動作しません。私は、ユーザーがOutlookを閉じたときに、それは私がコードProcess[] localByName = Process.GetProcessesByName("OUTLOOK"); のこの行の終了を待つようなもののためにGoogleにしようとした次のHTMLファイルを継続して開くこと、それをしたいが、私は何も開いている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(); 
    } 
} 

答えて

2

を見つけるcouldntのあなたがProcess.WaitForExit()方法を探しているあなたはそれを使用することができます(https://msdn.microsoft.com/library/fb4aw7b8(v=vs.110).aspx

好き:私は、エラー重大度\tコードを得るよう

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

これは動作しません。説明\tプロジェクト\tファイル\tライン\t抑制状態 エラー\t CS1061「WaitForExit」とタイプの最初の引数を受け入れていない拡張メソッド「WaitForExit」の定義が含まれていません\t「[]プロセス」「プロセスは、[]」かもしれません\t CobMaker \t C:\ Users \ bnowlan \ Documents \ Visual Studio 2015 \ Projects \ Cob_Maker2 \ CobMaker \ CobMaker \ Program.cs アクティブ – ToyotaMR2

+0

を参照してください(使用するディレクティブまたはアセンブリ参照がありませんか?私の更新された答え –

関連する問題