IEnumWbemClassObject* pEnumerator = NULL;
hres = pSvc->CreateInstanceEnum( L"CIM_USBHub", 0, NULL, &pEnumerator); if (FAILED(hres))
{
pSvc->Release();
pLoc->Release();     
CoUninitialize();
return FALSE;               // Program has failed.
}
else
{
IWbemClassObject* pInstance = NULL;
ULONG dwCount = NULL; hres = pEnumerator->Next(
WBEM_INFINITE,
1,
&pInstance,
&dwCount);
if(SUCCEEDED(hres))
{
VARIANT varUSBData;
VariantInit(&varUSBData);
CIMTYPE             type; hres = pInstance->Get(bstr_t("Availability"),0,&varUSBData,&type,NULL);
if(FAILED(hres))
{
VariantClear(&varUSBData);
}
else
{
VariantClear(&varUSBData);
}
}
pSvc->Release();
pLoc->Release();     
CoUninitialize();见如上code ,奇怪的就是 varUSBData返回的却是NULL,而我查msdnhttp://msdn.microsoft.com/en-us/library/windows/desktop/aa388650(v=vs.85).aspx 确实有Availability这一属性的,但为什么访问不到。
有人遇到过这样的问题吗?求解答 谢谢。WMI Get 查询

解决方案 »

  1.   

    而且奇怪的是string类型的属性成员就能访问得到,但int类型就不可以了。这是什么原因的。
      

  2.   

    你确定这个属性是public么》?
      

  3.   

    那我想问一下 MSDN上面没有这方面的说明 具体你可以看一下 msdn上的这个文档 http://msdn.microsoft.com/en-us/library/windows/desktop/aa388650(v=vs.85).aspx
      

  4.   

    其他的属性 比如string类型就可以访问的
      

  5.   

    CIM_USBHub  的有些实例  Availability 属性值是空的, 所以取不出来, 很正常可以找个wmi Tools 看得到
      

  6.   

    请教一下问题 我现在在一个AP 功能能将Hub 中的电源管理中的一项 叫允许计算机关闭此设备以节约电源 默认是自动勾上的, 现在想要把它给去掉。 一般都是人为的操作 我希望有个AP 能够控制 它打开 或者 关闭 ,请问能否用WMI来实现吗?谢谢