- - PR -
他プロセスの状態を取得する
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-12-07 15:41
vb.netにおいての質問です。
x.exe内でshell関数で起動したa.exeで異常終了が発生し、 異常を告げるメッセージボックスが出た状態で止まった ままとします。x.exeはa.exeの状態を監視するプログラム なので、メッセージボックスが出たままの状態であれば 「異常終了」とみなし強制的にa.exeを終了させたいのですが 他プロセスで「メッセージボックスが起動している」といった 状態を取得するにはどうすれば良いのでしょうか。 ご存知の方がいらっしゃればご教示願います。 [ メッセージ編集済み 編集者: ぐゎし 編集日時 2005-12-07 16:06 ] |
|
投稿日時: 2005-12-07 19:09
こんにちは。
もし、a.exe のソースを触れるような状況、つまりどちらも自分で開発している状況ならば、セマフォやイベント等のカーネルオブジェクトを使うというのはどうでしょうか。 _________________ 囚人のジレンマな日々 |
|
投稿日時: 2005-12-07 19:47
囚人様、ご返信ありがとうございます。
a.exeのソースは触れる状況にある事はあるのですが、 他にソースが触れないb.exe,c.exeの状態も同時に 監視する必要があるので、x.exe単体で状態が 判るようにしたいのです。 APIのGetWindow関数で子ウィンドウの存在チェック等を 試したのですが上手くいきませんでした。 |
|
投稿日時: 2005-12-08 20:10
以下のやり方で解決しました。
@API[EnumWindows]で全ウィンドウハンドルを取得 A取得したウィンドウハンドルの親ハンドルをAPI[Getwindow]で取得 BAがメッセージボックスを起動しているプログラムのウィンドウハンドルかどうかを比較 上記手順で解決しました。ありがとうございました。 |
1