USB外付けハードドライブまたはディスクの製造元のシリアル番号(ボリューム番号ではない)を取得しようとしていますか?
[編集]これを行う方法について、私はまだコードを知らないか、持っていません。私が試した前の方法では、ボリュームのシリアル番号のみが返されました
USB外付けハードドライブまたはディスクの製造元のシリアル番号(ボリューム番号ではない)を取得しようとしていますか?
[編集]これを行う方法について、私はまだコードを知らないか、持っていません。私が試した前の方法では、ボリュームのシリアル番号のみが返されました
WMIを使用して、この情報を取得できます。ハードドライブのシリアル番号はにありWin32_PhysicalMedia
ます。ここでコードを書くのに時間をかけるつもりはありません。VB 6でWMIをクエリした経験がある場合は、それほど問題なく実行できるはずです。それ以外の場合は、サンプルコードをオンラインで検索してください。ハードドライブのシリアル番号については特に何も見つかりませんが、WMIの例はたくさんあります。
期待する形式のシリアル番号が常に得られるとは限らないという事実にうんざりしてください。たとえば、この記事へのコメントは、次のようなものが得られる可能性があることを示しています。
シリアル番号:4a3532544e464137202020202020202020202020
この場合、シリアル番号をデコードする必要があります。
16進数のバイトに変換すると、次のようになります(0x20は空白文字であり、切り捨てられます)。
0x4a, 0x35, 0x32, 0x54, 0x4e, 0x46, 0x41, 0x37
奇数バイトと偶数バイトを入れ替えると、次のようになります。
0x35, 0x4a, 0x54, 0x32, 0x46, 0x4e, 0x37, 0x41
上記のASCIIコードは、シリアル番号の文字列と同じです。
"5JT2FN7A"
また、すべての外付け/取り外し可能なハードドライブがこの情報を提供することも肯定的ではありません。マイレージは異なる場合がありますが、推奨される方法は内蔵ハードドライブで正常に機能します。
または、のような低レベルのWindowsAPIを使用してこれを実行できるようDeviceIOControl
です。VB6アプリのモジュールに必要な機能の宣言を追加する必要があります。Code Projectに関するこの記事は、始めるのに役立つはずです。コードはネイティブC++で記述されており、C#などの.NET言語での使用を対象としていますが、コードをVB6に適合させるのに問題はありません。