方法 : プロセスが応答しているかどうかを確認する

更新 : 2007 年 11 月

Responding プロパティを使用して、プロセスのユーザー インターフェイスが応答しているかどうかを確認できます。Responding プロパティを読み取ろうとすると、目的のプロセスのユーザー インターフェイスに要求が送信されます。すぐに応答があった場合は、プロパティの戻り値が true になります。インターフェイスから応答がない場合は、プロパティ値が false になります。このプロパティは、フリーズしたアプリケーションを強制的に終了する場合に便利です。

プロセスが応答しているかどうかを確認するには

  1. コンポーネントによって開始されたプロセスでない場合は、Process コンポーネントを目的のプロセスに関連付けます。詳細については、「方法 : 既存のプロセスにバインドする」を参照してください。

  2. Responding プロパティを読み取ります。

  3. プロパティの値に応じて、必要な処置を決定します。

    メモ帳が応答しているかどうかを確認する例を次に示します。Responding プロパティが true の場合は、CloseMainWindow メソッドを呼び出してアプリケーションを閉じます。Responding プロパティが false の場合は、M:System.Diagnostics.Process.Kill メソッドを呼び出してプロセスを強制終了します。

    Dim myProcesses() As Process
    myProcesses = Process.GetProcessesByName("Notepad.exe")
    ' Tests the Responding property for a True return value.
    If myProcesses(0).Responding Then
        myProcesses(0).CloseMainWindow()
    Else
        ' Forces the process to close if the Responding value is False.
        myProcesses(0).Kill()
    End If
    
         Process[] notepads;
            notepads = Process.GetProcessesByName("Notepad.exe");
            // Test to see if the process is responding.
            if (notepads[0].Responding)
            {
                notepads[0].CloseMainWindow();
            }
            else
            {
                notepads[0].Kill();
            }
    

参照

処理手順

方法 : プロセスを指定する

方法 : プロセスを停止する

方法 : 既存のプロセスにバインドする

その他の技術情報

プロセスに関する情報の取得

プロセスの管理