1

私のプロジェクトでは、システム内のソフトウェアのインストールとアンインストールを監視したいので、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);

質問:My event consumer で、ソフトウェアの名前を取得したいのですが、どうすればよいですか?

ありがとう!!

4

1 に答える 1