c++ - 如何获取数据 IWbemClassObject **

标签 c++ c wmi

你好如何从这个数组中获取数据?或者如何获取我可以提取的所有名称?

hres = pSvc->ExecNotificationQueryAsync( _bstr_t("WQL"), _bstr_t("SELECT * " 
            "FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'"), 
        WBEM_FLAG_SEND_STATUS,  NULL, pStubSink);
for (int i = 0; i < lObjectCount; i++)
{
    VARIANT varName;
    hres = apObjArray[i]->Get(_bstr_t(L"__CLASS"),
        0, &varName, 0, 0);

    if (FAILED(hres))
    {
        cout << "Failed to get the data from the query"
            << " Error code = 0x"
            << hex << hres << endl;
        return WBEM_E_FAILED;       // Program has failed.
    }

    printf("Name: %ls\n", V_BSTR(&varName));
}

最佳答案

您的代码无法正常工作,因为 ExecNotificationQueryAsync 的结果必须使用 IWbemObjectSink 处理方法目的。试试这个 MSDN 示例 Receiving Event Notifications Through WMI您也可以使用类似 WMI Delphi Code Creator 的工具生成 C++ 代码以访问 WMI。

关于c++ - 如何获取数据 IWbemClassObject **,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16316485/

相关文章:

c++ - 将参数移动到 std::thread 中?

c++ - 在 UNIX 中通过 recv/send 交换数据时如何正确使用缓冲区?

c - 从数组中检索和存储元素(根据条件)

javascript - 是否可以使用 node.js 获取已安装的 Windows 更新的列表?

c# - 如何将变量严格键入为特定 WMI 类?

c++ - 无法在 Matlab UNIX 上打开串口

C++:如何有效地将值分配给 vector 列表?

c - while 循环不继续,在 1 次迭代后退出

c - 通过三点A、B、C的坐标定义一个盒子

c# - 如何构建 WMI 查询