Public Declare Function GetVolumeInformation& Lib "KERNEL32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long)
Public Const MAX_FILENAME_LEN = 256
Function DriveSerial(ByVal sDrv As String) As Long
Dim RetVal As Long
Dim str As String * MAX_FILENAME_LEN
Dim str2 As String * MAX_FILENAME_LEN
Dim a As Long
Dim b As Long
Call GetVolumeInformation(sDrv & ":\", str, MAX_FILENAME_LEN, RetVal, a, b, str2, MAX_FILENAME_LEN)
DriveSerial = RetVal
End Function'以上程序取出的是一长整型如82637297 有时还是负数? 是不是因为lpVolumeSerialNumber As Long 被定义为长整?
'API函数的定义中,这个应该是一地址!当WIN2K非法关机后,第二次启动会进行各个分区的扫描,在扫描的过程中也显示了各个分区的VolumeSerialNumber 但并不是以上程序取出的长整型,而是一字符串如:PH35-5H96????
Public Const MAX_FILENAME_LEN = 256
Function DriveSerial(ByVal sDrv As String) As Long
Dim RetVal As Long
Dim str As String * MAX_FILENAME_LEN
Dim str2 As String * MAX_FILENAME_LEN
Dim a As Long
Dim b As Long
Call GetVolumeInformation(sDrv & ":\", str, MAX_FILENAME_LEN, RetVal, a, b, str2, MAX_FILENAME_LEN)
DriveSerial = RetVal
End Function'以上程序取出的是一长整型如82637297 有时还是负数? 是不是因为lpVolumeSerialNumber As Long 被定义为长整?
'API函数的定义中,这个应该是一地址!当WIN2K非法关机后,第二次启动会进行各个分区的扫描,在扫描的过程中也显示了各个分区的VolumeSerialNumber 但并不是以上程序取出的长整型,而是一字符串如:PH35-5H96????
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货