2012-03-23 47 views
0

我有一種情況,我必須檢測何時關閉應用程序窗口。我目前只是在任務管理器中查看應用程序是否正在運行。VBScript和Windows Shell。如何檢測窗口事件

但現在當應用程序窗口關閉時,我需要確定這是否是由用戶或其他進程引起的事件。

那麼我怎樣才能鉤入一個窗口的事件內的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 

的問題是,有沒有辦法來檢測爲什麼它停止或什麼動作引起,除非特定程序觸發一個事件或寫入到事件日誌(或其他任何日誌對於這個問題)。抱歉。