Numero de Serie physique d'un disque dur

Messages postés
19
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 mai 2012
- - Dernière réponse : cs_yaissa
Messages postés
1
Date d'inscription
samedi 7 janvier 2012
Statut
Membre
Derniè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 .

Merci.
Afficher la suite 

8 réponses

Messages postés
381
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
24 octobre 2013
2
0
Merci
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

Methode #2

drvPath="c:"
ofs=CreateObject('Scripting.FilesystemObject')
drv = ofs.GetDrive(ofs.GetDriveName(drvPath))
? drv.SerialNumber

Methode #3

CREAT TABLE TEMP FREE (COMPTE C(50))

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



Mike Gagnon
Commenter la réponse de Mike Gagnon
Messages postés
19
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 mai 2012
1
0
Merci
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 ).

Merci encore une fois Mike.
Commenter la réponse de cs_mahdi22dz
Messages postés
381
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
24 octobre 2013
2
0
Merci
Change cette ligne

CREATE CURSOR PhysicalMedia (serialnumber c(100) )
pour
CREATE CURSOR PhysicalMedia (serialnumber c(100) NULL)

Mike Gagnon
Commenter la réponse de Mike Gagnon
Messages postés
19
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 mai 2012
1
0
Merci
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
Commenter la réponse de cs_mahdi22dz
Messages postés
19
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 mai 2012
1
0
Merci
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.
Commenter la réponse de cs_mahdi22dz
Messages postés
381
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
24 octobre 2013
2
0
Merci
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



Mike Gagnon
Commenter la réponse de Mike Gagnon
Messages postés
19
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 mai 2012
1
0
Merci
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

Merci Mike
Commenter la réponse de cs_mahdi22dz
Messages postés
1
Date d'inscription
samedi 7 janvier 2012
Statut
Membre
Dernière intervention
9 janvier 2012
0
Merci
bonjour
est ce possible de changer le numero de serie du disque dur physique, celui qui est inscrit sur le disque dur lui meme
Merci
Commenter la réponse de cs_yaissa