C++ 获取OEM String

来源:互联网 发布:中国大数据专家委员会 编辑:程序博客网 时间:2024/06/07 22:24

工作过程中需要读取机器OEM String信息,读取该信息最简便的方法是采用WMIC。

1.批处理脚步读取

打开DOS命令后窗口,键入wmic computersystem get OEMStringArray,即可读取机器OEM String信息。

2.powershell读取

打开powershell界面,键入(get-wmiobject -class Win32_ComputerSystem).OEMStringArray即可

3.C++读取

在文章利用WMI获取本机信息http://blog.csdn.net/cnuserfdg/article/details/51759694中,当OEMStringArray作为输入参数时,并不能获取到目的字符串,这是由于此时VARIANT变体中存储的返回值为数组。

修改代码如下即可返回目的字符串。

hr = m_szIWbemObject[i]->Get(pTargetCaption, 0, &var, NULL, NULL);if (var.vt != VT_NULL){SAFEARRAY *pArr = nullptr;BSTR vbStr = nullptr;pArr = V_ARRAY(&var);if (SafeArrayGetDim(pArr)!=1){strRet = var.bstrVal;}else{LONG lLeft = 0;LONG lRight = 0;SafeArrayGetLBound(pArr, 1, &lLeft);SafeArrayGetUBound(pArr, 1, &lRight);LONG arrayCount = lLeft;while (arrayCount<=lRight){if (SafeArrayGetElement(pArr,&arrayCount,&vbStr) == S_OK){strRet += vbStr;strRet += _T(" ");}arrayCount++;}}if (vbStr!=nullptr){SysFreeString(vbStr);vbStr = nullptr;}break;}


0 0
原创粉丝点击