Numéro de carte mère vide [Résolu]

Signaler
Messages postés
47
Date d'inscription
mardi 31 octobre 2000
Statut
Membre
Dernière intervention
21 février 2008
-
cs_makito
Messages postés
47
Date d'inscription
mardi 31 octobre 2000
Statut
Membre
Dernière intervention
21 février 2008
-
Bonjour à tous, je souhaite récupérer le numéro de série de la carte, j'ai alors essayé plusieurs sources que j'ai trouvé sur le site mais soit ils me renvoient 0 soit une chaine vide . Quelqu'un a t il eu le meme probleme? Merci d'avance

7 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
demande l'UID du processeur, ca, ça fonctionne, je pense

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
je pense qu'une requête WMI interrogeant le SerialNumber d'un objet Win32_BaseBoard ferait l'affaire....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
47
Date d'inscription
mardi 31 octobre 2000
Statut
Membre
Dernière intervention
21 février 2008

Salut Reinfield, merci de ton aide

Voici le code que j'utilise :

Private Sub Form_Load()
    Dim liste
    Set liste = GetObject("winmgmts:").InstancesOf("Win32_baseboard") ' Win32_baseboard a remplacer par l'instance desire
   
    For Each p In liste
        Text1.Text = Text1.Text & "    " & p.GetObjectText_
    Next
End Sub

Sur le premier pc (WinXp Pro) il me retourne "00000000" et sur un deuxième pc " " (Win2000)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
le code est correct, mais le SerialNumber n'est surement pas obligatoire ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
24
 Bonjour ,

Avec WMI, comme le suggère Renfield:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")


For Each objOperatingSystem in colOperatingSystems
    msg = ""
    msg = msg &  objOperatingSystem.Caption & "  Version " & objOperatingSystem.Version & vbCrLf
    sp = objOperatingSystem.ServicePackMajorVersion
    spmin = objOperatingSystem.ServicePackMinorVersion
    msg = msg & "Numéro de Série : " & objOperatingSystem.SerialNumber & vbCrLf
    If (sp > 0) Then
     msg = msg & "Le Service Pack " & sp & "." & spmin & " est installé." & vbCrLf
    End If
    msg = msg  & vbCrLf & "Cet OS est installé sur " & objOperatingSystem.BootDevice & vbCrLf
    msg = msg & "dans le répertoire " & objOperatingSystem.WindowsDirectory & vbCrLf
    msg = msg & "depuis le " & clair(objOperatingSystem.InstallDate) & "."


    Wscript.echo msg
Next


Function clair(temps)
 debut = left(temps,8)
 an = left(debut,4)
 mois = mid(debut,5,2)
 jour = right(debut,2)
 clair = CStr(jour) & "-" & CStr(mois) & "-" & CStr(an)
End function

jean-marc
Messages postés
47
Date d'inscription
mardi 31 octobre 2000
Statut
Membre
Dernière intervention
21 février 2008

Hehe merci renfield ;) mais j'aimerais que ça soit obligatoire :) On refait windows? ;p

Sinon merci jean-marc de ton aide aussi, mais cela répond pas à mes attentes, désolé mais merci beaucoup.

En fait, ce qu'il me faut, c'est ne permettre à mon programme de ne pouvoir marcher que sur un seul ordinateur défini lors de la compilation. Je veux que si on prend le disque dur pour l'installer sur une autre carte mère, le programme ne puisse pas se lancer.

encore merci à vous 2
Messages postés
47
Date d'inscription
mardi 31 octobre 2000
Statut
Membre
Dernière intervention
21 février 2008

Ah oui, superbe idée Renfield, je suis bete de ne pas y avoir pensé. Merci beaucoup, ça le fait !!!!