WMI: отслеживать изменения в реестре

В моем проекте я хочу отслеживать установку и удаление программ в моей системе, поэтому я использую механизм событий WMI, но теперь я столкнулся с проблемой и у меня возник вопрос.

проблема:

Я хочу отслеживать HKLM’SOFTWARE \ Microsoft \ Windows \ currentversion \ unistall ‘, но код [1] работает с ошибкой (ExecNotificationQueryAnsync не работает с = 0x80041058). В то время как код [2] работает нормально, что не так?

[1]
hres = pSvc->ExecNotificationQueryAsync(
_bstr_t("WQL"),
_bstr_t("SELECT * FROM RegistryTreeChangeEvent WITHIN 1 " "WHERE Hive='HKEY_LOCAL_MACHINE'" "AND RootPath='software\\Microsoft\\Windows\\currentversion\\unistall'"),
WBEM_FLAG_SEND_STATUS,
NULL,
pStubSink);
[2]

hres = pSvc->ExecNotificationQueryAsync(
_bstr_t("WQL"),
_bstr_t("SELECT * FROM RegistryTreeChangeEvent WITHIN 1 " "WHERE Hive='HKEY_LOCAL_MACHINE'" "AND RootPath='software'"),
WBEM_FLAG_SEND_STATUS,
NULL,
pStubSink);

вопрос : в моем потребителе событий, я хочу получить название программного обеспечения, как я могу это сделать?

Спасибо!!

1

Решение

Просто используйте

SELECT * FROM RegistryTreeChangeEvent WITHIN 1 " "WHERE Hive='HKEY_LOCAL_MACHINE'" "AND RootPath='software\\\\Microsoft\\\\Windows\\\\currentversion\\\\unistall'"
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]