L'auteur
 Christophe Chenavier
France Membre Simple # 0000000023 enregistré le 14/10/2004 http://www.corwin.fr 59 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é 10514 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 |
|
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