C++ WMI获取usb deviceID数据不全的问题 Win32_USBHub
微軟msdn舉得C++?例子,通過(guò)wmi獲取操作系統(tǒng)名稱Name,當(dāng)然是一個(gè)數(shù)據(jù)。但是Win32_USBHub的deviceID就不只一個(gè),比如鍵盤、鼠標(biāo)、優(yōu)盤等。如果按msdn的例子流程,只會(huì)輸出第一個(gè)數(shù)據(jù),剩下數(shù)據(jù)則無(wú)法輸出。谷歌翻網(wǎng)頁(yè)翻的頭疼無(wú)解結(jié)果自己嘗試了下意外解決了方法如下:
1、箭頭1,所指next函數(shù)第三個(gè)參數(shù),類型是IEnumWbemClassObject * m_pEnumClsObj,因?yàn)楝F(xiàn)在是一組數(shù)據(jù)所以將其改為數(shù)組IWbemClassObject* m_pWbemClsObj[20];
2、箭頭2,是數(shù)組的大小,此處根據(jù)上面定義是20;
3、GET函數(shù)前面也應(yīng)改為數(shù)組輪訓(xùn)獲得。
4、uReturn這個(gè)值,是實(shí)際獲取得數(shù)量,可以將其作為輪循標(biāo)準(zhǔn)。比如我自己電腦就是6個(gè),所以6次get就可以了。
以上就是解決多個(gè)數(shù)據(jù)的關(guān)鍵,因?yàn)閿?shù)據(jù)獲得比較長(zhǎng),建議可先排序,后放到一個(gè)string,然后md5加密,成32位長(zhǎng)度。
總結(jié)
以上是生活随笔為你收集整理的C++ WMI获取usb deviceID数据不全的问题 Win32_USBHub的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c++ 截取\r\n问题
- 下一篇: sscanf fscanf函数格式化输入