[リストへもどる]
一括表示

投稿時間:2003/07/24(Thu) 15:07
投稿者名:kaims
URL :
タイトル:
バッチプログラムの実行を監視したいのですが…
はじめまして。早速ですが、質問させてください。

vb6sp5で作成した、バッチ実行するEXE「A」があります。
これが起動しているのかしていないのかを、別のexe(同じくvb6sp5作成)「B」で、逐次監視したいのです。
(タイマイベントで、1分ごとに行おうと思っています)

ウィンドウハンドルやらを取得すればいいのか……?という辺りまで辿り着いたのですが、
そもそもウィンドウの出ないバッチプログラムで、この辺のものは取得出来るのだろうか等々、
考えれば考える程判らなくなってきてしまいました。
(API自体、あんまり触った事が無いので今ひとつ感触が掴めていません)

どうか、お知恵を拝借させてください。よろしくお願いします。

投稿時間:2003/07/24(Thu) 15:37
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: バッチプログラムの実行を監視したいのですが…
> ウィンドウハンドルやらを取得すればいいのか……?という辺りまで辿り着いたのですが、
> そもそもウィンドウの出ないバッチプログラムで、この辺のものは取得出来るのだろうか等々、

VB6では、たとえフォームが1個も無かったとしても、"ThunderRT6Main"という
ウィンドウが必ず存在します。
http://support.microsoft.com/?kbid=185730


> (API自体、あんまり触った事が無いので今ひとつ感触が掴めていません)
WMIを使うという手もありますよ。

Dim Path As String
Dim SQL As String
Dim Count As Long

Path = "C:\Program Files\Hidemaru\Hidemaru.exe"

SQL = "SELECT Name FROM Win32_Process WHERE ExecutablePath='"
SQL = SQL & Replace(Path, "\", "\\") & "'"

Count = GetObject("winmgmts:").ExecQuery(SQL).Count

If Count = 0 Then
    MsgBox "起動されていません。"
Else
    MsgBox CStr(Count) & "個起動されています。"
End If

投稿時間:2003/07/24(Thu) 17:08
投稿者名:kaims
URL :
タイトル:
解決しました!!
ありがとうございました!
大人しく、教示戴いたWMIの方式で試してみたら、無事、動いてくれました!
(2日も悩んだ自分が莫迦みたいですが……)
コレで先に進めます(^-^;
ほんとうに、ありがとうございました。