VBScript и Windows Shell.Как обнаружить события окна - PullRequest
0 голосов
/ 23 марта 2012

У меня есть ситуация, когда я должен определить, когда окно приложения закрыто.В настоящее время я просто смотрю в диспетчере задач, чтобы увидеть, работает приложение или нет.

Но теперь, когда окно приложения закрыто, мне нужно определить, было ли это событие, вызванное пользователем или другим процессом.

Так как я могу подключиться к событию окна в vbscript?

1 Ответ

0 голосов
/ 24 марта 2012

Вы можете отслеживать, когда программа останавливается в VBScript, используя WMI. Это довольно просто. Вы даже можете установить управляемый событиями сценарий, который выполняется, когда он останавливается. Это выглядит так:

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

Проблема заключается в том, что нет способа обнаружить , почему он остановился или какое действие вызвало его, если только эта конкретная программа не инициирует событие или не записывает в журнал событий (или любой другой журнал в этом отношении). К сожалению.

...