我正在使用QT开发一个桌面应用程序。我使用下面的代码来获取笔记本电脑的序列号。它在Windows7和Windows Vista上运行良好。它在Windows XP中不起作用。
代码:
QProcess process;
process.start("wmic bios");
process.waitForFinished(-1);
QByteArray out = process.readAllStandardOutput().simplified();发布于 2013-03-05 19:50:13
基于this thread,从命令"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浏览注册表),并相应地更新上面的代码片段
发布于 2013-03-05 22:54:24
当我第一次在新的Windows XP VirtualBox实例上执行"wmic bios“时,它显示我”等待安装结束“,并且这个工具在成功安装后重新启动(所以初始过程已经完成)。之后,Win7和WinXP中的输出是相同的。
https://stackoverflow.com/questions/15220029
复制相似问题