Soyez le premier à donner votre avis sur cette source.
Snippet vu 21 038 fois - Téléchargée 9 fois
Function GetPhysicalDriveSerialNumber(Optional ByVal ID As Integer = 0, Optional ByVal bSepar As Boolean = True) As String 'CETTE FONCTION NéCESSITE : ' LA RéFéRENCE 'System.Management' ' LA FONCTION 'GetBase10FromBase16' 'valeur de retour par défaut Dim sReturn As String If bSepar Then sReturn = "0000-0000" Else sReturn = "00000000" Try 'construction requête WMI Dim WMI_Obj As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_PhysicalMedia") 'recherche chaque item For Each ObjClsItem As ManagementObject In WMI_Obj.Get() 'si item = disque recherché If (ObjClsItem.GetPropertyValue("Tag").ToString = "\\.\PHYSICALDRIVE" & ID.ToString) Then 'ici le serial en base16 ou 10 Dim sRet As String = ObjClsItem.GetPropertyValue("SerialNumber").ToString 'peut être vide If sRet IsNot Nothing Then 'conversion base10 sRet = sRet.Trim If Not (sRet.Length = 8) Then sRet = GetBase10FromBase16(sRet) 'ajoute le "-" si nécessaire, puis retour en variable If bSepar Then sRet = String.Concat(sRet.Substring(0, 4), "-", sRet.Substring(4)) sReturn = sRet.ToUpper End If Exit For End If Next ObjClsItem Catch ex As Exception End Try 'retour fonction Return sReturn End Function Private Function GetBase10FromBase16(ByVal sStr As String) As String Dim sReturn As String = String.Empty sStr = sStr.Replace("20", String.Empty) For i As Integer = 0 To 15 Step 2 sReturn += Convert.ToChar(Convert.ToInt64(sStr.Substring(i, 2), 16)) Next i Return sReturn End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.