Visual Basic 2010 で GetDriveSerialNumber() を使用してドライブ ボリュームのシリアル番号を取得しています。
次のインポートがあります。
Imports System
Imports System.IO
Imports System.Text
Imports System.Net.NetworkInformation
Imports System.Management
Imports System.Collections
Imports Microsoft.Win32
Imports Microsoft.VisualBasic
そして、モジュールで:
Dim path As String
'Get HD volume Serial Number from Function
Dim DriveVID As String = GetDriveSerialNumber()
機能は次のとおりです。
'Get HD Volume serial Number
Public Function GetDriveSerialNumber() As String
Dim DriveSerial As Long
Dim fso As Object, Drv As Object
'Create a FileSystemObject object
fso = CreateObject("Scripting.FileSystemObject")
Drv = fso.GetDrive(fso.GetDriveName(AppDomain.CurrentDomain.BaseDirectory))
With Drv
If .IsReady Then
DriveSerial = .SerialNumber
Else '"Drive Not Ready!"
DriveSerial = -1
End If
End With
'Clean up
Drv = Nothing
fso = Nothing
GetDriveSerialNumber = Hex(DriveSerial)
End Function
これは、10 台中 9 台のコンピューターでうまく機能します。
1つだけ別の7文字を返してくれます。
与えられるはずの8文字に反対し、
cmdでvolコマンドを入力しても、
そのコンピューターで、
正しい 8 文字のボリューム シリアル番号が表示されます。
誰が何が悪いのか知っていますか?