我正在使用 QT 开发桌面应用程序。我正在使用以下代码获取笔记本电脑的序列号。它适用于 Windows 7 和 Windows Vista。它在 Windows XP 中不起作用。
代码:
QProcess process;
process.start("wmic bios");
process.waitForFinished(-1);
QByteArray out = process.readAllStandardOutput().simplified();
我正在使用 QT 开发桌面应用程序。我正在使用以下代码获取笔记本电脑的序列号。它适用于 Windows 7 和 Windows Vista。它在 Windows XP 中不起作用。
代码:
QProcess process;
process.start("wmic bios");
process.waitForFinished(-1);
QByteArray out = process.readAllStandardOutput().simplified();
First time when I did "wmic bios" on a new Windows XP VirtualBox instance it showed me "wait for installation end" and this tool restarted after successful installation (so the initial process was finished). Afterwards output is the same in Win7 and WinXP.
根据这个线程,从命令“wmic bios”检索到的信息似乎在注册表中可用
HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System
您可以使用QSettings读取 windows 上的注册表
一个简单的例子就像
QSettings settings("HKEY_LOCAL_MACHINE\\HARDWARE\\DESCRIPTION\\System",
QSettings::NativeFormat);
QString value = settings.value("Identifier", "0").toString();
您将必须获取您要查找的实际密钥(使用 regedit.exe 浏览注册表)并相应地更新上述代码片段