你好如何从这个数组中获取数据?或者如何获取我可以提取的所有名称?
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));
}
答案 0 :(得分:1)
您的代码无效,因为必须使用ExecNotificationQueryAsync
对象处理IWbemObjectSink
方法的结果。试试这个MSDN示例Receiving Event Notifications Through WMI
您还可以使用像WMI Delphi Code Creator
这样的工具生成C ++代码来访问WMI。