-2

シリアル番号を取得する方法の良い例が2つあります。DelphiでマザーボードIDまたはシリアル番号を取得する方法は?

それらはすべて私のために機能します(Windows7)。しかし、2人の場合はそうではありません!

オプション1(Microsoft WMIScripting Library)は、例外で処理できないエラーを返します。(例外でコードを使用しようとしましたが、実行されませんでした)。OS Windows 7:

ここに画像の説明を入力してください

オプション2(Windows XP)-何も返しません:エラーもシリアル番号もありません。

誰かがそれがなぜであるかを説明できますか、そしてこれを行うための作業コードがありますか?

そのリンクにはコメントがあります:「@ PRUZそして、私の2番目のコメントについて何か知っていますか?「none」を返す他のコンピューターで同じコードをチェックします。どうしたのですか?–Himadri」

ありがとう!!!

4

1 に答える 1

4

@ maxfax、最初のサンプルコードはWindows XPでは機能しません。ItemIndexこれは、Windows Vista以降で使用可能なプロパティを使用しているためです。詳細については、この記事を確認してください(Be careful when you import the Microsoft WMIScripting Library。2番目のスニペットは、プロパティの名前を直接使用してWMIプロパティにアクセスするため、どのWindowsシステムでも正常に機能する必要があります。2番目のオプションがどのマシンでもシリアル番号を取得しない場合は、WMIプロバイダーがこのプロパティの情報を公開していないためです。補足として、VMWAREのような一部の仮想マシンNoneはシリアル番号として報告します。

アップデート

SMBios()の読み方についてブログに記事を書きました。Reading the SMBios Tables using Delphiこの方法を使用すると、SMBiosテーブルからマザーボードのシリアル番号を直接取得できます。

于 2011-07-29T22:43:42.263 に答える