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;
}
我想在 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;
}