プロセスのユーザーインターフェイスが応答するか調べるプロセスのユーザーインターフェイスが応答するか調べるには、Process.Respondingプロパティを使います。RespondingプロパティがTrueを返せばそのプロセスのユーザーインターフェイスは応答しており、Falseを返せばすぐには応答しないこと示しています。 なお、MainWindowHandleがないプロセスでは、このプロパティはTrueを返します。
補足:Windows98において、ProcessStartInfo.UseShellExecuteにTrueを設定してプロセスを開始した場合、このプロパティは利用できません。
次の例では、ローカルコンピュータで実行されているプロセスの中でユーザーインターフェイスが応答しないものがあるか調べ、そのIDを表示しています。 'ローカルコンピュータ上で実行されているすべてのプロセスを取得 Dim ps As System.Diagnostics.Process() = _ System.Diagnostics.Process.GetProcesses() '配列から1つずつ取り出す Dim p As System.Diagnostics.Process For Each p In ps 'プロセスのユーザーインターフェイスが応答するか調べる If Not p.Responding Then Console.WriteLine("{0}:応答なし", p.Id) End If Next p Console.WriteLine("完了") //ローカルコンピュータ上で実行されているすべてのプロセスを取得 System.Diagnostics.Process[] ps = System.Diagnostics.Process.GetProcesses(); //配列から1つずつ取り出す foreach (System.Diagnostics.Process p in ps) { //プロセスのユーザーインターフェイスが応答するか調べる if (!p.Responding) { Console.WriteLine("{0}:応答なし", p.Id); } } Console.WriteLine("完了"); |
|
Copyright(C) DOBON!. All rights reserved.
|