2012-03-23 22 views
0

アプリケーションウィンドウが閉じられたときに検出する必要がある状況があります。私は現在、アプリケーションが実行されているかどうかを確認するためにタスクマネージャーを探しています。VBScriptおよびWindowsシェル。ウィンドウイベントを検出する方法

しかし、今度はアプリケーションウィンドウが閉じられたときに、これがユーザーまたは別のプロセスによって引き起こされたイベントかどうかを判断する必要があります。

どうすればvbscript内のウィンドウのイベントにフックできますか?

答えて

0

WMIを使用してVBScriptでプログラムが停止したときを監視できます。それはかなり簡単です。停止したときに実行されるイベントドリブンスクリプトを設定することもできます。それは次のようになります。

strProcess = "someprocess.exe" 

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 

Set colEvents = objWMIService.ExecNotificationQuery(_ 
    "SELECT * FROM __InstanceDeletionEvent WITHIN 1 " _ 
     & "WHERE TargetInstance ISA CIM_Process " _ 
      & "AND TargetInstance.Name='" & strProcess & "'") 

While True 
    ' Process stopped 
Wend 

Set colEvents = Nothing 
Set objWMIService = Nothing 

問題はは、それが停止したり、特定のプログラムがイベントを発生させたり、イベントログへの書き込みをしない限り、どのようなアクションがそれを引き起こした理由を検出する方法(または任意の他のログがないことですそのことについては)。ごめんなさい。

関連する問題