ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Récupérer le numéro de série d'un disque dur   



L'auteur

Christophe Chenavier
France France
Membre Simple
# 0000000023
enregistré le 14/10/2004
http://www.corwin.fr
53 ans
CHENAVIER Christophe
80440 BOVES
de la société Corwin
Fiche personnelle


Note des membres
pas de note

Contributions > 05 - API et appels systèmes > HD

Récupérer le numéro de série d'un disque dur
# 0000000009
ajouté le 14/10/2004 07:23:38 et modifié le 30/03/2005
consulté 5473 fois
Niveau initié

Description
Paramètres :
cDisk : permet de préciser la lettre du disque dont on veut obtenir le numéro de série

Valeur retournée :
chaîne de caractères contenant le numéro de série

Remarque :
Si la lettre du disque n'est pas précisée, c'est le disque courant (SYS(5)) qui sera pris par défaut
Code source :
FUNCTION DiskSerial

LPARAMETER cDisk

DECLARE SHORT GetVolumeInformation IN Win32API ;
        STRING wroot, ;
        STRING wnombuf, ;
        LONG wnomsize, ;
        STRING wnumero, ;
        STRING wmx, ;
        STRING wflag, ;
        STRING wsysbuf, ;
        INTEGER wsyssize

LOCAL wroot, wnombuf, wnumero, wmx
LOCAL wflag, wsysbuf, wnomsize, wsyssize
LOCAL n1,n2,n3,n4, w1,w2,w3,w4

wroot = IIF(EMPTY(cDisk), SYS(5), cDisk + ':') + "\" && disque courant
wnombuf = SPACE(255)
wnumero = SPACE(10)
wmx = SPACE(255)
wflag = SPACE(255)
wsysbuf = SPACE(255)
wnomsize = 255
wsyssize = 255

GetVolumeInformation (wroot, @wnombuf, @wnomsize, @wnumero, ;
                      @wmx, @wflag, @wsysbuf, @wsyssize)

*** récupérer la valeur numérique décimale de chaque c retourné
*** (en inversant car les c sont retournés dans l'ordre 4, 3, 2, 1)
n4 = ASC(SUBSTR(wnumero,1,1))
n3 = ASC(SUBSTR(wnumero,2,1))
n2 = ASC(SUBSTR(wnumero,3,1))
n1 = ASC(SUBSTR(wnumero,4,1))

*** transformer la valeur décimale en valeur hexadécimale
w1 = TRANSFORM(n1,'@0')
w2 = TRANSFORM(n2,'@0')
w3 = TRANSFORM(n3,'@0')
w4 = TRANSFORM(n4,'@0')

RETURN RIGHT(w1,2) + RIGHT(w2,2) + "-" + RIGHT(w3,2) + RIGHT(w4,2)


Commentaires
le 05/11/2004, Olivier Hamou a écrit :
Salut Guy

Il y aussi deux autres inconvenients, sur windows 95 le scripting
n'est pas installé.
Et sur les lecteurs mappés avec win9x cela ne marche pas.
(probleme de dll GetVolumeInformation)
Merci por ton info , je ne le savais pas pour le formatage.

Olivier

le 05/11/2004, Guy Bonemme a écrit :
Olivier
Il y a eu pour W95 une version SE (special edition) et lors de l'installation de IE4+
Le MSHost scripting était installé. Il fallait donc faire une MAJ, mais je reconnais que sur les 200 CD premiers, j'ai eu qqes soucis pour certains PC.
Sur un disque avec partition si ton prg est installé sur la 2eme c'est le n0 de la première qui est retourné.
Celà mis à part depuis w98 le système est simple comme protection et tout le monde heureusement ne reformate pas son HDD.


Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2019.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3