国家电网江苏招聘:请教使用API函数的问题?真奇怪。

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 06:26:32
使用GetVolumeInformation函数(获取硬盘卷标序列号),我的系统是W2K Profession版,只能计算出E:、F:的序列号,而C、D盘计算为0。而在另一台机器(W2K Server版)只能计算C:、F:盘的序列号,而D盘计算为0。
谢谢大虾们的关注!
有一个form窗体、txtDriver、txtDriverSerial、Command1

Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Private VSN As Long

Private Sub Command1_Click()

Dim Dr As String
Dim VNB As String * 256
Dim FSNB As String * 256
Dim MCL As Long
Dim FSF As Long

Dr = Trim(txtDriver) & ":"

VSN = 0
Call GetVolumeInformation(Dr, VNB, 256, VSN, MCL, FSF, FSNB, 256)
txtDriverSerial.Text = Hex(VSN)

End Sub

你可以把代码发出来.
估计是获取时和一些变量使用有问题.