Process.Start()
基本的にメソッドを使用してアプリケーションを呼び出すコードスニペットがあります。
ProcessStartInfo psi = new ProcessStartInfo(strAppPath);
psi.WindowStyle = ProcessWindowStyle.Maximized | ProcessWindowStyle.Normal;
//Starts the xyz application process.
Process xyzProcess = Process.Start(psi);
xyzProcess.WaitForInputIdle();
プロセスは数秒以内に開始されますが、アプリケーションが完全に初期化されるまでに時間がかかる場合があります。つまり、私のアプリケーションxyz
は、実行しているマシンに応じて5〜10秒かかる場合があります(つまり、高速のPCでは5秒未満、低速のPCでは10秒以上かかります)
私の質問:これを追跡する方法はありますか?を使用してしばらく待つ以外に、いくつかのプロパティをポーリングするThread.Sleep(ms)
。
次のアプローチを無駄に使ってみました
xyzProcess.Responding
小さなポーリングプロパティthread.sleep
xyzProcess.MainWindowTitle
null以外の値を返すまでポーリングするという汚いアプローチ。xyzProcess.WaitForInputIdle(sleeptime)
;
助けてください
ありがとう