Comment puis-je lire le numéro de série du volume du disque dur à l'aide de la VB 6, mais sans utiliser de contrôles ActiveX ou d'extensions tierces?Comment puis-je lire le numéro de série du volume HDD à l'aide de VB 6?
2
A
Répondre
5
Private Declare Function GetVolumeInformation _
Lib "kernel32" Alias "GetVolumeInformationA" _
(ByVal lpRootPathName As String, _
ByVal pVolumeNameBuffer 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
Public Function GetSerialNumber(_
ByVal sDrive As String) As Long
If Len(sDrive) Then
If InStr(sDrive, "\\") = 1 Then
' Make sure we end in backslash for UNC
If Right$(sDrive, 1) <> "\" Then
sDrive = sDrive & "\"
End If
Else
' If not UNC, take first letter as drive
sDrive = Left$(sDrive, 1) & ":\"
End If
Else
' Else just use current drive
sDrive = vbNullString
End If
' Grab S/N -- Most params can be NULL
Call GetVolumeInformation(_
sDrive, vbNullString, 0, GetSerialNumber, _
ByVal 0&, ByVal 0&, vbNullString, 0)
End Function
Pour appeler:
Dim Drive As String
Drive = InputBox("Enter drive for checking SN")
MsgBox Hex$(GetSerialNumber(Drive))
1
L'exemple suivant fournit de série du lecteur où votre EXE est
'APi declaration
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
Sub subHDsn()
Dim TempAPi, VolumeSerial As Long
Dim strPATH As String
On Error Resume Next
TempAPi = 0
VolumeSerial = 0
If App.Path Like "*:*" Then
'checking whether the drive is local or mapped
strPATH = Left(App.Path, 3)
Else
'if it's a UNC
strPATH = Left(App.Path, InStr((InStr(3, App.Path, "\") + 1), App.Path, "\"))
End If
'call API
TempAPi = GetVolumeInformation(strPATH, VolumeName, 100, VolumeSerial, 100, FileSystemFlags, FileSystemName, 100)
If TempAPi = 0 Then
MsgBox "Error calling API!", 16
End
End If
'convert from HeX
HDsn = Hex(VolumeSerial)
End Sub
1
L'exemple suivant sans API besoin.
Public Function GetSerialNumber(ByVal sDrive As String) As String
On Error Resume Next
Open "Vol.bat" For Output As 1
Print #1, "@vol %1%>DSN"
Close
Kill "DSN"
Shell ("Vol.bat " + sDrive)
Do
Open "DSN" For Input As 1
Input #1, GetSerialNumber
Input #1, GetSerialNumber
Close
Loop While GetSerialNumber = ""
GetSerialNumber = Right$(GetSerialNumber, 9)
Kill "Vol.bat"
Kill "DSN"
End Function
Questions connexes
- 1. Hdd Numéro de série
- 2. comment obtenir le volume numéro de série
- 3. Programmer le numéro de série du volume FAT32
- 4. Hexadécimal du numéro sur le port série
- 5. Comment obtenir le numéro de série du volume du lecteur système
- 6. Comment supprimer et insérer le numéro de série dans MYSQL et réorganiser le numéro de série?
- 7. Renommer le PC au numéro de série
- 8. Numéro de série du processeur
- 9. Une méthode plus rapide pour obtenir le numéro de série du volume?
- 10. Lire le volume Mic
- 11. Récupération et affichage du numéro de série de volume de disque dans NSIS
- 12. Obtention du numéro de série du BIOS
- 13. Recherche du numéro de série d'un CD
- 14. Récupération du numéro de série de l'appareil
- 15. NUMÉRO multiple dans le numéro de série
- 16. Comment obtenir le numéro de série du moniteur?
- 17. Obtenir le numéro d'inventaire et le numéro de série du bios en utilisant C++
- 18. Comment obtenir le numéro de série du disque dur
- 19. Comment exécuter le code de VB 6 à partir de Visual Studio 2010, ou j'ai besoin de télécharger VB 6?
- 20. Drupal Numéro de série
- 21. C# équivalent à la fonction SETTINGS du port série VB 6
- 22. Getters et setters de vb 6 à vb .net
- 23. Numéro de port série C# Numéro
- 24. Comment lire le numéro de série d'une carte à puce Gemalto?
- 25. Lecture du numéro de série du périphérique USB en C#
- 26. Modification du numéro de série intégré
- 27. dispositif NUMÉRO DE SÉRIE
- 28. Quels sont les moyens d'obtenir le numéro de série du disque dur sans WMI?
- 29. Obtenir le numéro de série du disque dur (et pas le volume) sur Vista Ultimate 64 bits
- 30. meilleur moyen d'obtenir un numéro de série de volume dans une application asp.net?
Thanx @ C-Pound Guru –
La réponse parfaite! – indago