在VB6中,我得到的卷的序列号如下:
Temp1 = String$(255, Chr$(0))
Temp2 = String$(255, Chr$(0))
r = GetVolumeInformation(uDrive, Temp1, StrLen(Temp1), lSerialNumber, 0, 0, Temp2, StrLen(Temp2))
GetPartitionSerialNumber = lSerialNumber
在VB.NET中我使用
Dim disk As System.Management.ManagementObject = New System.Management.ManagementObject("win32_logicaldisk.deviceid=""" + uDrive + ":""")
disk.Get()
Dim SerialNumber As String = disk("VolumeSerialNumber").ToString()
VB6返回-1870518177,但VB.NET返回9082285F。
有人可以告诉我我还需要做些什么才能在.NET中获得结果-1870518177?
谢谢!
答案 0 :(得分:2)
虽然Val("&H" & ...)
可行,但这是旧的VB6做事方式并非最佳。更好的方法是:
Dim iSerial As Integer = Convert.ToInt32(sSerialNumber, 16)
16
参数指定基数(十六进制数为16)。
答案 1 :(得分:0)
Dim iSerial As Integer = Val(“& H”& sSerialNumber)