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 .
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
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 ).
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
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.
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
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