ハードディスクのシリアル番号の取得方法

解決


ワトソン  2003-06-30 20:38:42  No: 78476

いつもお世話になっております。
現在、ハードディスクのシリアル番号の取得方法を調べています。
しかし、どのサイトを検索しても、みつかりません。
ずばり、どうすればいいのでしょうか?
言語は、VB6 or VCであればどのような方法でもかまいません。
どなたか知恵をお貸しください。
よろしくお願いします。


batchman  2003-07-01 00:07:46  No: 78477

ファイルシステムオブジェクトを使用すればシリアル番号や空き容量等が取得できます。

フォームにラベルコントロールを貼り付けて下記のコードを実行してみて下さい。
詳細はヘルプや検索サイト等でFileSystemObjectを調べてください。

    Dim fs  As Object
    Dim drv As Object
    
    Set fs = CreateObject("Scripting.FileSystemObject")                                                   'ファイルシステムオブジェクト作成

    For Each drv In fs.Drives
            
        'ハードディスクシリアル番号一覧を作成
        If drv.DriveType = 2 Then
              Label1.Caption = Label1.Caption & drv.driveletter & ": " & Format$(drv.SerialNumber) & vbCrLf
        End If
    Next
    Set fs = Nothing


ワトソン  2003-07-01 00:50:40  No: 78478

batchmanさん、ありがとうございます。
何とかハードディスクのシリアル番号を取得する事ができました。

MSDNを見る限り、WSHを使用していますが、APIを使った取得方法は無いのでしょうか?
というのも、WSHはOSによっては実装していない可能性がありますし、遅いという事も問題になっています。

もう少しお付き合い願えませんでしょうか…


batchman  2003-07-01 02:30:52  No: 78479

APIで取るならば、GetVolumeInformationで取れるようです。

    Dim lngSerial   As Long
    
    Call GetVolumeInformation("c:\", vbNullString, 0, lngSerial, 0, 0, vbNullString, 0)
    MsgBox Format$(lngSerial)

>WSHはOSによっては実装していない可能性がありますし、遅いという事も問題になっています。

OSというよりIEのバージョンに左右されますね。

#そんなに頻繁にボリューム名を調べるんでしょうか...1、2回程度の参照だとそれほど遅いと感じませんけども...


ワトソン  2003-07-01 19:34:38  No: 78480

batchmanさん、ありがとうございます。
おかげで出来ました。

>#そんなに頻繁にボリューム名を調べるんでしょうか...1、2回程度の参照だとそれほど遅いと感じませんけども...
えっと、IEが古い可能性のマシンが多いもので…


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加