cs_mahdi22dz
Messages postés19Date d'inscriptionlundi 24 avril 2006StatutMembreDernière intervention 3 mai 2012
-
4 juin 2010 à 12:15
cs_yaissa
Messages postés1Date d'inscriptionsamedi 7 janvier 2012StatutMembreDernière intervention 9 janvier 2012
-
9 janv. 2012 à 21:13
Mes Salutations.
Il existe des DLL (Ex:GetDiskSerial.dll, HardDiskId.dll ..etc) et des OCX ( SysIfo.ocx etc..) pour récupérer le N° de série du disque dur.
Je voudrais savoir s'il existe d'autres méthodes par programmation directe (VFP9) pour recuperer le N° de série permanent du disque dur .
Mike Gagnon
Messages postés381Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention24 octobre 20132 4 juin 2010 à 12:44
Methode #1
LOCAL objWMI,colClass,objClass,strComputer
CREATE CURSOR PhysicalMedia (serialnumber c(100))
strComputer = "."
objWMI = GetObject("winmgmts:\" +strComputer + "\root\cimv2")
colClass = objWMI.ExecQuery("Select * from Win32_PhysicalMedia",,48)
For Each objClass in colClass
INSERT INTO PhysicalMedia (serialnumber) VALUES (objclass.serialnumber)
Next
BROWSE normal
IF !FILE("vol.GLL") && le fichier qui contient reception les information
RUN VOL C: > vol.GLL && obtenu a l'execution de la commande run
ELSE
APPEND FROM vol.GLL SDF
DELETE ALL FOR EMPTY(COMPTE) && ecraser l'enregistrement vierge
ENDIF
GO TOP
LVOLNAME = ALLTRIM(COMPTE) && linge nom du volume
SKIP
LVOLSERIAL = ALLTRIM(COMPTE) && ligne numero de serie
BROW
LSERIE_l = SUBSTR(LVOLSERIAL,RAT(LMOIN,LVOLSERIAL)-4) && localiser le numero de serie
WAIT WINDOW LSERIE_l && le numero serie obtenu en hexadecimal
cs_mahdi22dz
Messages postés19Date d'inscriptionlundi 24 avril 2006StatutMembreDernière intervention 3 mai 20121 4 juin 2010 à 20:50
Merci Beaucoup pour votre réponse Mike
Quand j'exécute votre Méthode #1 je reçoit ce message d'erreur : "Field SERIALNUMBER does not accept null values".
Pour les Méthode #2 et #3, elles ne donnent que le numero de serie SOFT ( qui change après formatage ).
cs_mahdi22dz
Messages postés19Date d'inscriptionlundi 24 avril 2006StatutMembreDernière intervention 3 mai 20121 6 juin 2010 à 13:02
Bonjour Mike
J'ai changé la ligne comme vous me l'avez demandé mais en BROWSant le cursor il ne contient que la la valeur NULL ( il n'ya pas de N° serie)
pourtant ça marche trés bien avec Getdiskserial.dll.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_mahdi22dz
Messages postés19Date d'inscriptionlundi 24 avril 2006StatutMembreDernière intervention 3 mai 20121 8 juin 2010 à 18:15
Apparemment Personne n'a une idée sur la manière dont on peut obtenir le numero de serie physique d'un disque dur.
J'ai obtenu une nouvelle DLL ( HardDriveInfo.dll avec sa clé d'utilisation )
et je n'arrive pas à l'utiliser avec VFP.
j'ai besoin d'un exemple pour VFP.
Sur le site ( www.diskserialnumber.com ) il n'existe qu'un seul exemple pour Visuel Basic.
Mike Gagnon
Messages postés381Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention24 octobre 20132 10 juin 2010 à 13:57
Quelle version de Windows utilises-tu? Avec Vista et Windows 7,Windows reconnait les disques durs comme des VDH (Virtual Hard Drive) et ce VDH ne contient plus le numéro de série du disque dur lui-meme.
Si tu veux un numéro de série encore disponible dans ces Version de Windows, tu pourrais aller chercher le numéro de série de la carte maitresse, ou du Bios.
____Carte Maitresse
LOCAL lcComputerName, loWMIService, loItems, loItem, lcMID
lcComputerName = "."
loWMIService = GETOBJECT("winmgmts:\" + lcComputerName + "\root\cimv2")
loItems = loWMIService.ExecQuery("Select * from Win32_BaseBoard")
FOR EACH loItem IN loItems
WITH loItem
MESSAGEBOX("Motherboard Product: " + TRANSFORM(.Product ))
MESSAGEBOX("Serial # :" + TRANSFORM(.SerialNumber))
ENDWITH
endfor
____Bios
clear
lcComputer = "."
loWMIService = Getobject("winmgmts:" ;
+ "{impersonationLevel=impersonate}!\" + lcComputer + "\root\cimv2")
colBIOS = loWMIService.ExecQuery ;
("Select * from Win32_BIOS")
For Each loBIOS In colBIOS
?"Build Number: " + loBIOS.BuildNumber
?"Current Language: " + loBIOS.CurrentLanguage
?"Installable Languages: " + TRANSFORM(loBIOS.InstallableLanguages)
?"Manufacturer: " + loBIOS.Manufacturer
?"Name: " + loBIOS.Name
?"Primary BIOS: " + TRANSFORM(loBIOS.PrimaryBIOS)
?"Release Date: " + TRANSFORM(loBIOS.ReleaseDate)
?"Serial Number: " + loBIOS.SerialNumber
?"SMBIOS Version: " + loBIOS.SMBIOSBIOSVersion
?"SMBIOS Major Version: " + transf(loBIOS.SMBIOSMajorVersion)
?"SMBIOS Minor Version: " + TRANSFORM((loBIOS.SMBIOSMinorVersion))
?"SMBIOS Present: " + TRANSFORM(loBIOS.SMBIOSPresent)
?"Status: " + loBIOS.Status
?"Version: " + loBIOS.Version
Next
cs_mahdi22dz
Messages postés19Date d'inscriptionlundi 24 avril 2006StatutMembreDernière intervention 3 mai 20121 12 juin 2010 à 13:31
Pour la ____Carte Maitresse ça ne marche pas , je ne sais pas pourquoi , pourtant j'utilise Windows XPSP2 et aussi Windows XPSP2 avec VFP9.
Je reçois les messages : MotherBoard Product : Nettiling
: Serial# : Base board serialnumber
Pour le____Bios , ça a marché en recevant les valeurs suivantes :
.NULL.
.NULL.
Installable Languages:.NULL.
Manufacturer : Acer
Name : Deafault System Bios
Primary Bios : .T.
Release Date : 2007080900000.00000+000
Serial Number: LXALA0X0A7370A3581601
SMBIOS Version: V1.14
SMBIOS Major Version : 2
SMBIOS Minor Version : 4
SMBIOS Present : .T.
STATUT : .T.
Version :ACRSYS -1