PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Numéro de série d'un ordinateur.
Numéro de série d'un ordinateur.
Débuté par MedRAHIMI, 22 avr. 2015 10:33 - 8 réponses
Membre enregistré
24 messages
Popularité : +1 (1 vote)
Posté le 22 avril 2015 - 10:33
Bonjour a tous ,

Je suis en train de développer une application avec windev 19 j'ai besoin de votre aide SVP .

Est ce qu'il y pas une fonction windev ou bien un API windows pour trouver le numéro de série d'un ordinateur.

Merci.
Cordialement
Med RAHIMI
Membre enregistré
945 messages
Popularité : +102 (110 votes)
Posté le 22 avril 2015 - 14:48
Bonjour,
Essayez avec WMI et la classe Win32_BaseBoard
objLocator est un objet automation "WbemScripting.SWbemLocator"
objService est un objet automation dynamique
Board est un objet automation dynamique

objService = objLocator>>ConnectServer(".", "root\cimv2")
objService>>Security_>>ImpersonationLevel = 3
Board = objService>>ExecQuery("select * from Win32_BaseBoard")
IF Board>>Count > 0 THEN
Trace(Board>>ItemIndex(0)>>Properties_>>Item("SerialNumber")>>Value)
Trace(Board>>ItemIndex(0)>>Properties_>>Item("Product")>>Value)
Trace(Board>>ItemIndex(0)>>Properties_>>Item("Manufacturer")>>Value)
END
Libérer Board
Libérer objService
Membre enregistré
24 messages
Popularité : +1 (1 vote)
Posté le 22 avril 2015 - 15:38
Bonjour Philippe Merci pour votre réponse.

j'ai comparé les deux résultats :
-la commande DOS : wmic bios get serialnumber --> CNU413D0XC
-et votre code --> PDXVU001X6H2JX , sont différents !!!

Savez vous comment exécuter la commande DOS "wmic bios get serialnumber " sous windev !!!!!

Merci .
Cordialement.
Med RAHIMI
Membre enregistré
945 messages
Popularité : +102 (110 votes)
Posté le 22 avril 2015 - 20:44
Bonsoir
Essayez d'interroger la classe Win32_BIOS
objLocator est un objet automation "WbemScripting.SWbemLocator"
objService est un objet automation dynamique
Bios est un objet automation dynamique

objService = objLocator>>ConnectServer(".", "root\cimv2")
objService>>Security_>>ImpersonationLevel = 3
Bios = objService>>ExecQuery("select * from Win32_BIOS")
IF Bios>>Count > 0 THEN
Trace(Bios>>ItemIndex(0)>>Properties_>>Item("SerialNumber")>>Value)
END
Libérer Bios
Libérer objService


Je ne connaissais pas cette commande mais elle fait la même chose que le code Windev, sauf que l'on ne met pas le nom complet de la classe
wmic "classe" get "membre" pour avoir le nom complet de la classe il faut juste la préfixer par "Win32_"
Ainsi wmic bios get serialnumber revient à demander le membre "serialnumber" de la classe "Win32_BIOS"
Membre enregistré
24 messages
Popularité : +1 (1 vote)
Posté le 23 avril 2015 - 10:32
Parfait ! ça marche Bien !

Merci beaucoup Philippe .

Cordialement.
Med RAHIMI
Posté le 28 janvier 2016 - 16:34
j'ai testé votre et sa marche .

Une question SVP :

Je n'arrive pas a afficher le model de mon ordinateur. vous avez une idée ?

avec CMD :: wmic csproduct get name, identifyingnumber sa marche

Comment faire avec Windev ?


Merci
Posté le 29 octobre 2018 - 22:37
Bonsoir , merci pour votre code pour afficher le numeraux de serie
Mais je voudrais maintenant recuperer le numeraux dans un variable pour mon traitement svp priere de maider
Membre enregistré
1 message
Posté le 07 novembre 2019 - 14:52
Merci Phillipe pour votre code mais je l'ai essayé sur Windows xp et n'a pas marché
Message modifié, 07 novembre 2019 - 14:53
Membre enregistré
7 messages
Posté le 26 juillet 2022 - 15:21
Bonjour Philippe,
Encore un grand Merci 🙏🏼🙏🏼🙏🏼🙏🏼🙏🏼🙏🏼