7

重複の可能性:
Process.Start() が成功したかどうかを知る方法は?

WD私のプログラムには、別の実行中のプロセスであるウォッチドッグ(と呼びましょう)に似たプロセスがあります(呼びましょうA)。特定のイベントでプロセスを開始しています。WDキーが押されたとしましょう。このプロセスで別のプロセスを開始したいとします。それを呼び出しましょうB

問題は、そのプロセスが正常に開始されたAことを知った後、最初のプロセスをシャットダウンしたいということです。Bどうすればそれを確認できますか?

プロセスWDを開始BProcess.Start(argList)ProcessInfo(argList)構文を使用しています。

各プロセスは単純な C# コンソール アプリケーションです。

4

2 に答える 2

7

Process.Startはブール値を返します(プロセスが正しく開始された場合はtrue)Process.Start()メソッドについてはこのMSDNリンクを確認してください。

コードは次のようになります。

        Process B= new Process();

        try
        {
            B.StartInfo.UseShellExecute = false;
            B.StartInfo.FileName = "C:\\B.exe";
            B.StartInfo.CreateNoWindow = true;
            if (B.Start())
            {
              // Kill process A 
            }
            else
            {
               // Handle incorrect start of process B and do NOT stop A
            }

        }
        catch (Exception e)
        {
            // Handle exception and do NOT stop A
        }
于 2012-06-19T08:42:14.573 に答える
0

プロセス.開始

戻り値:プロセス リソースが開始されている場合はtrue 。新しいプロセス リソースが開始されない場合 (たとえば、既存のプロセスが再利用される場合) はfalse 。

の戻り値を確認するだけでよいと思いますProcess.Start。その場合はtrue、現在のプロセスを閉じることができます。

使用するオーバーロードによっては、null失敗した場合の戻り値もある可能性があります。

于 2012-06-19T08:40:47.677 に答える