WMI 奇怪的值

WMI strange values

我想在 WMI 中检测 RAM 制造商。我得到奇怪符号而不是实际数据的问题。我还使用 wmic 命令检查了它。截图如下。

截图:

我尝试了不同的方法在输出前检查值,但问题仍然存在。

代码:

VARIANT ramManufacturer;
pclsObj->Get(L"Manufacturer", 0, &ramManufacturer, 0, 0);
QString userRAMManufacturer;
QStringList ramProperty;
QStringList ramData;

   if (SysStringLen(ramManufacturer.bstrVal) != 0) {
       userRAMManufacturer = QString::fromWCharArray(ramManufacturer.bstrVal);

        if (!userRAMManufacturer.isEmpty()) {
            ramProperty << QObject::tr("Manufacturer");
            ramData << userRAMManufacturer;
        }
    }

if (CComBSTR(ramManufacturer.bstrVal).Length() != 0) {
    userRAMManufacturer = QString::fromWCharArray(ramManufacturer.bstrVal);

    if (!userRAMManufacturer.isEmpty()) {
        ramProperty << QObject::tr("Manufacturer");
        ramData << userRAMManufacturer;
    }
}

如何解决这个问题?提前致谢。

@selbie

谢谢。我检查了 Get 值,现在值是正确的。

代码:

if (ramManufacturer.vt != VT_NULL && ramManufacturer.vt == VT_BSTR) {
    userRAMManufacturer = QString::fromWCharArray(ramManufacturer.bstrVal);
    ramProperty << QObject::tr("Manufacturer");
    ramData << userRAMManufacturer;
}