2022年10月16日日曜日

[C#,サンプルコード]HogeHogeをkillするのサンプルコード

private void TerminateHogeHoge()
{
    //ローカルコンピュータ上で実行されている"HogeHoge"という名前のすべてのプロセスを取得
    Process[] processes = Process.GetProcessesByName("HogeHoge");
    foreach (Process process in processes)
    {
        // メイン ウィンドウにクローズ メッセージを送信する
        bool isCloseMainWindow = process.CloseMainWindow();
        if (! isCloseMainWindow)
        {
            // 終了しなかった場合は強制終了する
            process.Kill();
        }

        // プロセスが終了するまで60秒間に待機する
        // TODO:何秒待機するのが適正化?暫定的に60秒。
        bool isExit = process.WaitForExit(60000);
        if (isExit)
        {
            return;
        }
        throw new HogeHogeException("一定時間内にHogeHogeが終了しませんでした。");
    }
}

0 件のコメント: