【发布时间】:2014-06-14 17:35:13
【问题描述】:
您好,我使用的是 Visual C++ 2010。
我正在尝试使用 wmi 提取硬件详细信息,一切正常,但是当我在 windows 8.1 中测试应用程序时,应用程序崩溃了,结果证明是来自 win32_physicalmedia 代码。
代码如下:
pSvc->ExecQuery(
bstr_t("WQL"),
bstr_t("SELECT SerialNumber FROM Win32_PhysicalMedia"),
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
NULL,
&pEnumerator);
IWbemClassObject *pclsObjjj;
ULONG uReturnnn = 0;
while (pEnumerator)
{
HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
&pclsObjjj, &uReturnnn);
if(0 == uReturnnn)
{
break;
}
VARIANT vtProp;
它在 windows xp 和 7 上运行良好,但在 windows 8.1 上,当它到达获取这个时它崩溃并且不发送。
有什么建议吗?
【问题讨论】:
-
尝试捕获
ExecQuery方法的结果,以便了解错误。 -
好的,谢谢你,我回家后试试这个并给出我的反馈
标签: wmi wmi-query wmi-service