2009-02-11 5 views

Répondre

6

Vous pouvez utiliser WMI (Windows Management Instrumentation) comme ceci:

Dim mos As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia") 

For Each mo As ManagementObject In mos.Get() 
    Dim serial As String = mo("SerialNumber").ToString() 
Next 

Bien que, je l'ai lu sur les cas où aucun numéro de série est renvoyé en utilisant WMI. Un autre moyen d'y parvenir serait de recourir à Platform Invocation Services (PInvoke).

This article inclut un téléchargement dans lequel l'auteur implémente CreateFile() et DeviceIoControl() pour extraire des informations sur le lecteur via les services Interop dans VB .NET.

Pour utiliser l'une des méthodes décrites ci-dessus, vous aurez besoin des droits ADMIN, un utilitaire qui semble contourner cela peut être trouvé here. Si vous vous sentez aventureux, le C++/Win32 source code est disponible pour vous. (Consultez le 'ReadPhysicalDriveInNTWithZeroRights()' fonction)

0

Voici le code pour obtenir le numéro de série du disque dur

Dim HDD_Serial As String 

    Dim hdd As New ManagementObjectSearcher("select * from Win32_DiskDrive") 

    For Each hd In hdd.Get 

     HDD_Serial = hd("SerialNumber") 
     MsgBox(HDD_Serial) 
    Next 

Hope it helps.

-1
Public Function getHardDiskSerialNo() 
    Dim serial As String 

    Dim hd As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia") 
    For Each dvs As ManagementObject In hd.Get() 
     serial = dvs("SerialNumber").ToString() 

    Next 
    Return serial 

End Function 
+0

Ceci a été signalé comme étant de qualité médiocre. S'il vous plaît développer votre code seulement répondre à expliquer ce que le code fait. – Bugs

Questions connexes