关闭

[置顶] C++ 获取OEM String

275人阅读 评论(0) 收藏 举报
分类:

工作过程中需要读取机器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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:28099次
    • 积分:538
    • 等级:
    • 排名:千里之外
    • 原创:62篇
    • 转载:50篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论