1

アイデアとご意見をお寄せいただきありがとうございます。

私のプログラムからサードパーティのプログラムが現在ユーザーのシステムで実行されているかどうかを定期的に確認したいと思います。現在、C# で次のようにプログラムを起動しています。

        String plinkConString = ""; // my connection string
        Process plink = Process.Start(utilityPath + @"\putty.exe", plinkConString);
        int plinkProcessId = plink.Id;

プログラムを起動し、Windows 環境でその pid を取得します。Putty/PLink は、ある時点で SSH サーバーから切断されて終了する可能性があるため、このプロセスがコードでどのように実行されているかを監視する最良の方法は何ですか?

このプログラムを起動して成功または失敗を監視するより良い方法はありますか?

4

2 に答える 2

2

プロセスがまだ稼働しているかどうかを確認したい場合は、HasExitedプロパティを確認できます。

Process plink = Process.Start(utilityPath + @"\putty.exe", plinkConString);
....
bool isRunning = plink.HasExited;

次のコードは、パテが実行されているかどうかを確認します。プログラムがユーザーによって開始された場合にも機能します。

bool isRunning = Process.GetProcessesByName("putty").Length > 0;
于 2010-06-17T12:24:32.953 に答える
0

Process.WaitForExit()またはProcess.WaitForExit(int)、またはProcess.Exitedイベント ハンドラを使用できます。Monitorそれよりも複雑な動作が必要な場合は、にも興味があるかもしれません。

于 2010-06-17T12:24:52.890 に答える