2013-03-05 26 views
1

我正在開發一個使用QT的桌面應用程序。我正在使用下面的代碼獲取筆記本電腦的序列號。它適用於Windows 7和Windows Vista。它不適用於Windows XP。如何獲取Windows XP作爲操作系統的筆記本電腦的序列號?

代碼:

QProcess process; 
process.start("wmic bios"); 
process.waitForFinished(-1); 
QByteArray out = process.readAllStandardOutput().simplified(); 
+0

您是否嘗試過在此xp機器上從命令提示符運行「wmic bios」?你作爲輸出得到什麼? – Viv 2013-03-05 11:42:27

回答

0

基於this thread它的出現從命令 「WMIC BIOS」 檢索到的信息是在註冊表中提供

HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System 

您可以使用​​閱讀在Windows

註冊表

一個簡單的例子就像

QSettings settings("HKEY_LOCAL_MACHINE\\HARDWARE\\DESCRIPTION\\System", 
        QSettings::NativeFormat); 

QString value = settings.value("Identifier", "0").toString(); 

您將獲得實際的鑰匙你想找的(使用Regedit.exe瀏覽註冊表中)和更新上面的代碼片段相應

當我做「WMIC BIOS」在一個新的Windows XP
0

第一次它向我展示的VirtualBox實例「等待安裝結束」,並且該工具在成功安裝後重新啓動(所以最初的過程完成了)。之後的輸出在Win7和WinXP中是一樣的。

相關問題