IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Récupération ID disque dur caractères bizarres


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 478
    Par défaut Récupération ID disque dur caractères bizarres
    Bonjour,
    J'utilise une routine pour récupérer l'identifiant du disque dur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function GetHardDiskSerial(const DriveLetter: AnsiChar): string;
    var
      NotUsed:     DWORD;
      VolumeFlags: DWORD;
      VolumeInfo:  array[0..MAX_PATH] of AnsiChar;
      VolumeSerialNumber: DWORD;
    begin
      GetVolumeInformation(PChar(DriveLetter + ':\'),
        nil, SizeOf(VolumeInfo), @VolumeSerialNumber, NotUsed,
        VolumeFlags, nil, 0);
      Result := Format('%s%8.8X',
        [VolumeInfo, VolumeSerialNumber])
    end;
    Celle-ci marche sur bcp de machines mais sur une machine je récupère un nom bizarre:
    vˆô5E191432 alors que le disque dur avant (alors sur XP) avait l'id 5E191432

    Étrange?!?

    Qui peut m'aider???
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 093
    Par défaut
    La valeur de VolumeInfo n'est jamais initialisée, on dirait un code plus complet mal nettoyé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function GetHardDiskSerial(const DriveLetter: AnsiChar): string;
    var
      NotUsed:     DWORD;
      VolumeFlags: DWORD;
      VolumeSerialNumber: DWORD;
    begin
      GetVolumeInformation(PChar(DriveLetter + ':\'),
        nil, 0, @VolumeSerialNumber, NotUsed,
        VolumeFlags, nil, 0);
      Result := Format('%8.8X',
        [VolumeSerialNumber])
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 13
    Par défaut
    Il ne manquerai pas "VolumeInfo" à la place de "nil" plutôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function GetHardDiskSerial(const DriveLetter: AnsiChar): string;
    var
      NotUsed:     DWORD;
      VolumeFlags: DWORD;
      VolumeInfo:  array[0..MAX_PATH] of AnsiChar;
      VolumeSerialNumber: DWORD;
    begin
      GetVolumeInformation(PChar(DriveLetter + ':\'),
        VolumeInfo, SizeOf(VolumeInfo), @VolumeSerialNumber, NotUsed,
        VolumeFlags, nil, 0);
      Result := Format('%s%8.8X',
        [VolumeInfo, VolumeSerialNumber])
    end;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupération de disque dur
    Par Louis-Guillaume Morand dans le forum Windows Vista
    Réponses: 5
    Dernier message: 12/03/2009, 11h50
  2. Société de Récupération de Données Disque Dur ?
    Par nuke_y dans le forum Composants
    Réponses: 3
    Dernier message: 02/09/2008, 11h26
  3. [disque dur externe] Récupération des données
    Par linda8080 dans le forum Composants
    Réponses: 6
    Dernier message: 30/08/2008, 12h39
  4. Récupération configuration réseau sur Disque dur HS.
    Par Jean-Michel dans le forum Windows XP
    Réponses: 4
    Dernier message: 07/09/2006, 04h28
  5. Récupération de données sur Disque Dur
    Par assomniak dans le forum Windows XP
    Réponses: 3
    Dernier message: 17/06/2006, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo