• ベストアンサー

アプリケーションのフリーズを検出したい

WSH(VBScript)を使って、アプリケーション(GoogleEarth)をコントロールしています。 アプリがフリーズすることがあり、フリーズするとスクリプトはアプリからの応答待ちと思われる状態のまま止まってしまいます。 そこでフリーズを検出し、OSの再起動をかける仕組みを探しています。 VBScriptで何とかしようと思い作成しましたが、効果が得られなかったスクリプトを参考までに載せます。 On Error Resume Next Set ge = WScript.CreateObject("GoogleEarth.ApplicationGE") IF Err.Number <> 0 THEN … END IF 上記の場合、Setの一行でスクリプトが止まります(フリーズではなく、待ち状態だと思います) できれば、VBScriptでの対応をと考えていますが、 他のプログラムでも、公開、発売されているソフトでも構いませんので、 特定のアプリケーションのフリーズ状態(応答無し)を検出できないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

SendMessageTimeoutでWM_NULLを送る方法があるようです。 「アプリケーションが応答を停止したことを検出する方法。 」 http://support.microsoft.com/kb/231844/ja

dede_nd
質問者

補足

ありがとうございます。 参考をサイトをみて、試行錯誤しています。返事遅くなりまして失礼しました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

同じくアドバイスです。(ご参考までに。) 実行中のプロセスのシステムコールフックについて http://oshiete1.goo.ne.jp/qa3503196.html Linuxだとtopコマンドを使えば、プロセスのリアルタイム表示が可能ですよね。(Winでも似たようなのがあるのかな?専門外なのでよく分からず・・。)

参考URL:
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230904/
dede_nd
質問者

補足

ありがとうございます。 下の方から頂いたのもですが、windowsがプロセスを監視できるような仕組みを提供してるんですね。勉強になります。

すると、全ての回答が全文表示されます。

関連するQ&A