1

QTを使用してデスクトップアプリケーションを開発しています。ラップトップのシリアル番号を取得するために以下のコードを使用しています。Windows 7 と Windows Vista では正常に動作しています。Windows XP では動作しません。

コード:

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

2 に答える 2

0

このスレッドに基づくと、コマンド「wmicbios」から取得した情報は次のレジストリで入手できるようです。

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-05T11:50:12.637 に答える
0

新しい Windows XP VirtualBox インスタンスで初めて "wmic bios" を実行したとき、"wait for installation end" と表示され、インストールが成功した後にこのツールが再起動されました (最初のプロセスは終了しました)。その後の出力は、Win7 と WinXP で同じです。

于 2013-03-05T14:54:24.453 に答える