vb.net:VolumeSerialNumber与vb6获取卷信息

vb.net:VolumeSerialNumber与vb6获取卷信息,vb.net,Vb.net,在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 Sy

在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吗


谢谢大家!

Dim iSerial As Integer=Val(“&H”&sSerialNumber)

虽然
Val(“&H”&…
可以工作,但这是旧的VB6方法,不是最佳的。更好的方法是:

Dim iSerial As Integer = Convert.ToInt32(sSerialNumber, 16) 
16
参数指定基准(十六进制是基准16)