请问,在VB2005中能使用API函数GetVolumeInformation获取逻辑盘序列号吗?

来源:百度知道 编辑:UC知道 时间:2024/06/01 02:01:22
我发现用.net Framwork里面System.Management命名空间来读硬盘ID号有时会报“unhandled exception has occurred”错误。
所以想改用API来读,请问应该怎么写这段代码?
正因为读WMI报错才想用API的。
想获取硬盘的出厂ID号,不是磁盘卷标号。

申明:
Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, ByRef lpVolumeSerialNumber As Long, ByVal lpMaximumComponentLength As Integer, ByVal lpFileSystemFlags As Integer, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Integer) As Integer
应用:
Dim t As String = Space(256) '用于装载卷名(卷标)的一个字符串
Dim m As String = Space(256)'指定一个缓冲区,用于装载文件系统 的名称如FAT,NTFS以及其他)
Dim lVolumeSn As Long '磁盘卷序列号
Dim lResult As Integer = GetVolumeInformation("C:\", t, 256, lVolumeSn, 0, 0, m, 256)'非0标识成功

用my.computer.XXXX吧。。很好用