Test.exeが起動したどうかの判定をしたいのですが、
どのようにしたらわかるでしょうか?
宜しくお願いします。 (VB6)
WMI の Win32_Process クラスを使うのが簡単かと。
魔界の仮面弁士さん、早速ありがとうございます。
Dim i As Long
Dim Pro As Object
i = Shell("C:\Test.exe", 1)
For Each Proc In GetObject("winmgmts:").InstancesOf("win32_process")
If Pro.ProcessId = i Then MsgBox "テスト"
Next
こういった形で、Shell関数で起動させたExeに対してはできたのですが、
コンパイルされたExeをユーザーがTest.exeを起動させたときは
どのようにしたらよいでしょうか?
宜しくお願いします。
> Shell関数で起動させたExeに対してはできたのですが、
ProcessId ではなく、ファイル名や実行パスで検索すればよいかと。
それと、InstancesOf の結果をすべて列挙するのではなく、
WQL を用いて、ExecQuery にて検索した方が、効率がよいですよ。
> コンパイルされたExeをユーザーがTest.exeを起動させたときは
「Test.exe が起動した時に、何か処理を行いたい」のであれば、
WMI のイベントで処理してみてください。
http://www.showg.net/monoiziri/WMI/Search/Search02.htm
http://www.microsoft.com/japan/technet/community/columns/scripts/sg0103.mspx
魔界の仮面弁士さん、ありがとうございます。
ほとんど、WMIをわからずにレスしました。
リンクして頂いたところで、よく勉強をして、
再度質問させて、頂きます。
亀レスになると思いますが、
その際は、またよろしくお願いします。
リンク貼って頂いたところを何度も
読み返してみたり、
WMI イベント で検索をかけて
調べてみたのですが、
いろいろなOS情報を取得することはいろいろできるようですが、
「Test.exe が起動した時に、何か処理を行いたい」
ことには中々理解できないので、
もう少し教えて頂けないでしょうか?
宜しくお願いします。
その後も引き続き調べてみたのですが、
どうも理解がうまくできません。
なんとかして、目的のこと
>「Test.exe が起動した時に、何か処理を行いたい」
をしたいので、どなたかご教授お願いできませんか?
何卒、宜しくお願いします。
http://www.microsoft.com/japan/technet/community/columns/scripts/sg0103.mspx
の
notepad.exe を、Test.exe
WScript.Echo "Monitoring the web service..." を 何か処理
に
置き換えればいいのでは?
WScript.EchoはVBScriptの用法なので、
それをVBに置き換えるか、
上述vbsファイルをそのままTest.vbsのように置き換えて
Text.exeを監視するVBScriptとして実装するのもひとつの方法ですが。
| ツイート |
|