分辨率、卷标、序列号、分区表的读出

    技术2022-05-11  131

     

    Option Explicit

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

    Const FILE_VOLUME_IS_COMPRESSED = &H8000

    Function GetSerialNumber(strDrive As String) As LongDim SerialNum As LongDim Res As LongDim Temp1 As StringDim Temp2 As StringTemp1 = String$(255, Chr$(0))Temp2 = String$(255, Chr$(0))Res = GetVolumeInformation(strDrive, Temp1, Len(Temp1), SerialNum, 0, 0, Temp2, Len(Temp2))MsgBox Temp1MsgBox Temp2MsgBox Hex(SerialNum)GetSerialNumber = SerialNumEnd Function

    Public Sub GetVolInfo(ByVal path As String)Dim aa As LongDim VolName As StringDim fsysName As StringDim VolSeri As Long, compress As LongDim Sysflag As Long, Maxlen As Long'初试化字符串的长度VolName = String(255, 0)fsysName = String(255, 0)aa = GetVolumeInformation(path, VolName, 256, VolSeri, Maxlen, _Sysflag, fsysName, 256)VolName = Left(VolName, InStr(1, VolName, Chr(0)) - 1)fsysName = Left(fsysName, InStr(1, fsysName, Chr(0)) - 1)compress = Sysflag And FILE_VOLUME_IS_COMPRESSEDIf compress = 0 ThenMsgBox "未压缩驱动器"ElseMsgBox "压缩驱动器"End IfMsgBox "驱动器卷标 :" + VolNameMsgBox "驱动器标号 : " + Hex(VolSeri)MsgBox "驱动器文件系统 (FAT, HPFS, or NTFS)" + fsysNameMsgBox "支持的文件名长度" + Str$(Maxlen)End Sub

    Private Sub Command1_Click()MsgBox GetSerialNumber("C:/")End Sub

    Private Sub Command2_Click()Call GetVolInfo("C:/")End Sub

    Private Sub Command3_Click()Dim cr As StringDim Twidth As IntegerDim Theight As Integercr = Chr$(13) + Chr$(10)Twidth% = Screen.Width / Screen.TwipsPerPixelXTheight% = Screen.Height / Screen.TwipsPerPixelYMsgBox "屏幕大小为" + cr + cr + Str$(Twidth%) + " x" + Str$(Theight%), 64, "Info"End Sub


    最新回复(0)