Hard Drive Volume Serial Number 
Author Message
 Hard Drive Volume Serial Number

How can I get the Hard Drive Volume Serial Number that is displayed when
you type dir at the command prompt.

TIA

Mike



Sun, 31 Oct 2004 21:42:44 GMT  
 Hard Drive Volume Serial Number
Try using this declaration and function (you can pass the drive letter
in as a letter by itself, a letter followed by a colon or a letter
followed by a colon followed by a backslash). The serial number is
returned in Hex format.

Rick

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

Function GetSerialNumber(DriveLetter As String) As String
    Dim SerialNum As Long
    Dim VolNameBuf As String
    Dim FileSysNameBuf As String
    Select Case Len(DriveLetter)
      Case 1
        If DriveLetter Like "[a-z]" Then
          DriveLetter = Left$(DriveLetter, 1) & ":\"
        Else
          GetSerialNumber = "Error - Bad drive designation"
        End If
      Case 2
        If LCase(DriveLetter) Like "[a-z]:" Then
          DriveLetter = DriveLetter & "\"
        Else
          GetSerialNumber = "Error - Bad drive designation"
        End If
      Case 3
        If LCase(DriveLetter) Like "[!a-z]:\" Then
          GetSerialNumber = "Error - Bad drive designation"
        End If
      Case Else
        GetSerialNumber = "Error - Bad drive designation"
    End Select
    If Len(GetSerialNumber) = 0 Then
      VolNameBuf = String$(255, Chr$(0))
      FileSysNameBuf = String$(255, Chr$(0))
      GetVolumeInformation DriveLetter, VolNameBuf, _
                           Len(VolNameBuf), SerialNum, 0, 0, _
                           FileSysNameBuf, Len(FileSysNameBuf)
      GetSerialNumber = Right$("00000000" & Hex$(SerialNum), 8)
    End If
End Function


Quote:
> How can I get the Hard Drive Volume Serial Number that is displayed
when
> you type dir at the command prompt.

> TIA

> Mike



Mon, 01 Nov 2004 01:29:12 GMT  
 Hard Drive Volume Serial Number
Thanks! That is what I was looking for!
Quote:

> Try using this declaration and function (you can pass the drive letter
> in as a letter by itself, a letter followed by a colon or a letter
> followed by a colon followed by a backslash). The serial number is
> returned in Hex format.

> Rick

> 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

> Function GetSerialNumber(DriveLetter As String) As String
>     Dim SerialNum As Long
>     Dim VolNameBuf As String
>     Dim FileSysNameBuf As String
>     Select Case Len(DriveLetter)
>       Case 1
>         If DriveLetter Like "[a-z]" Then
>           DriveLetter = Left$(DriveLetter, 1) & ":\"
>         Else
>           GetSerialNumber = "Error - Bad drive designation"
>         End If
>       Case 2
>         If LCase(DriveLetter) Like "[a-z]:" Then
>           DriveLetter = DriveLetter & "\"
>         Else
>           GetSerialNumber = "Error - Bad drive designation"
>         End If
>       Case 3
>         If LCase(DriveLetter) Like "[!a-z]:\" Then
>           GetSerialNumber = "Error - Bad drive designation"
>         End If
>       Case Else
>         GetSerialNumber = "Error - Bad drive designation"
>     End Select
>     If Len(GetSerialNumber) = 0 Then
>       VolNameBuf = String$(255, Chr$(0))
>       FileSysNameBuf = String$(255, Chr$(0))
>       GetVolumeInformation DriveLetter, VolNameBuf, _
>                            Len(VolNameBuf), SerialNum, 0, 0, _
>                            FileSysNameBuf, Len(FileSysNameBuf)
>       GetSerialNumber = Right$("00000000" & Hex$(SerialNum), 8)
>     End If
> End Function



> > How can I get the Hard Drive Volume Serial Number that is displayed
> when
> > you type dir at the command prompt.

> > TIA

> > Mike



Mon, 01 Nov 2004 02:13:11 GMT  
 
 [ 3 post ] 

 Relevant Pages 

1. Hard Drive Serial Number/Total Drive Size

2. Obtaining hard drive's volume serial # in VB

3. Here is a hard one.... Volume Serial Number

4. hard drive serial number

5. Reading the Hard Drives Serial Number

6. Hard Drive Serial Number

7. Reading the hard drive's serial number

8. Hard drive serial number

9. Getting Hard Drive Serial number

10. How can I get the serial (or other) number of my hard drive through VB

11. How can I get the serial (or other) number of my hard drive through VB

12. API call for hard drive serial number

 

 
Powered by phpBB® Forum Software