このコードを使用して.exeファイルを実行しています:
Process proc = Process.Start("c:\program.exe");
proc.WaitForExit();
プロセスを開始するStopwatch
前に開始し、行の後に停止するとproc.WaitForExit();
、ユーザーがその特定のプログラムを使用していた時間を取得できます。
私が直面している問題は、一部のプログラム (およびゲーム) がランチャーを使用していることです。小さな .exe ファイルは、通常、何かをチェックしてから、実際にユーザーが実行したいプログラム/ゲームである別の .exe ファイルを起動します。これらの場合、上記のコードはランチャーの存在後に戻るため機能しません。
実行中のすべてのプロセスを追跡しproc
、すべてが終了するまで待機するにはどうすればよいですか?