На форме - одна кнопка. По нажатии на нее статистика начинается. Как только какой-то процесс запуститься, высвечивается MsgBox.
Пытался сделать возможность остановки статистики (в коде это легко можно заметить), но ничего не получается - программа ждет события в строчке "Set oE = oQ.nextevent" и не реагирует на нажатие кнопки (Command1).
В общем, как сделать так, чтоб форма обрабатывала события в той строке? Варианты использования таймера не предлагать (длительность процесса м.б. меньше минимального интервала таймера + много др. нюансов).
- Код: Выделить всё
Dim b_RunStat As Boolean
Private Sub Command1_Click()
b_RunStat = Not b_RunStat
If b_RunStat Then funGo
End Sub
Sub funGo()
Dim WMI, oQ, oE
Set WMI = GetObject("winmgmts:")
Set oQ = WMI.ExecNotificationQuery("select * from __InstanceCreationEvent within 1 where TargetInstance ISA 'Win32_Process'")
Do
DoEvents
If b_RunStat = False Then
Exit Do
End If
Set oE = oQ.nextevent
MsgBox oE.targetinstance.Name
Loop
End Sub
Private Sub Form_Load()
b_RunStat = False
End Sub