Public Function GetSysDiskID() As String
Dim sDriveLetter As String
Dim RetVal As Long
Dim lpName As String
Dim nSize As Long
Dim nSerial As Long
Dim lpMaxComp As Long
Dim nFileFlags As Long
Dim lpFileName As String
Dim sPath As String
sPath = Space(255)
lpName = Space(255)
lpFileName = Space(255)
nSize = 255
GetWindowsDirectory sPath, 255
sDriveLetter = Left(sPath, 3)
RetVal = GetVolumeInformation(sDriveLetter, lpName, _
nSize, nSerial, lpMaxComp, nFileFlags, lpFileName, nSize)
If RetVal = 0 Then
Exit Function
Else
GetSysDiskID = CStr(nSerial)
End If
End Function
声明
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 Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
博客展示了一段VBA代码,定义了一个名为GetSysDiskID的公共函数,用于获取系统磁盘ID。代码中使用了GetVolumeInformation和GetWindowsDirectory等API函数,通过获取系统路径和磁盘卷信息,最终返回磁盘序列号。
1828

被折叠的 条评论
为什么被折叠?



