C ++: мониторинг создания и завершения процесса в Windows

Я случайно увидел следующую часть кодаВот.

$Obj.ExecNotificationQueryAsync($hObj, "SELECT * FROM __InstanceCreationEvent WITHIN 0.5 WHERE TargetInstance ISA 'Win32_Process'")
$Obj.ExecNotificationQueryAsync($hObj, "SELECT * FROM __InstanceDeletionEvent WITHIN 0.5 WHERE TargetInstance ISA 'Win32_Process'")


Switch $OB.Path_.Class
            Case "__InstanceCreationEvent"
                ConsoleWrite("+~>" & _ProcessGetPath($OB.TargetInstance.ProcessID) & @CR)
            Case "__InstanceDeletionEvent"
                ConsoleWrite("!~>" & $OB.TargetInstance.ProcessID & @CR)
        EndSwitch

Я использовал то же самоеWQL запросы для мониторинга процессов вC++, Есть ли что-то подобное вC++ по которому я могу знать, было ли это создание или прекращение процесса. Я пытался с помощью__CLASS, но это дает вывод какWin32_Process, Я кодирую вMSVS2010.

Пожалуйста, помогите. Спасибо

РЕДАКТИРОВАТЬ 1: WQL QUERY ADDED

hres = pSvc->ExecNotificationQueryAsync(
        _bstr_t("WQL"), 
        _bstr_t("SELECT * " 
            "FROM __InstanceDeletionEvent WITHIN 1 "
            "WHERE TargetInstance ISA 'Win32_Process' "), 
        WBEM_FLAG_SEND_STATUS, 
        NULL, 
        pStubSink);


     hres = pSvc->ExecNotificationQueryAsync(
        _bstr_t("WQL"), 
        _bstr_t("SELECT * " 
            "FROM __InstanceCreationEvent WITHIN 1 "
            "WHERE TargetInstance ISA 'Win32_Process'"), 
        WBEM_FLAG_SEND_STATUS, 
        NULL, 
        pStubSink);

Используя приведенный выше код, я получаю имя процесса, созданного или завершенного, напечатанного в консоли из метода IWbemObjectSink :: Indicate.

Ответы на вопрос(1)

Ваш ответ на вопрос