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

API, COM et SDKs Delphi Discussion :

Accés aux lecteurs physiques


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 230
    Par défaut Accés aux lecteurs physiques
    Bonjour à tous.

    Il existe une fonction dans Delphi qui donne la liste des lecteurs logiques (GetLogicalDrives) et qui retourne "C:\", "D:\", etc.

    Existe-t-il une fonction qui permette d'obtenir le lecteur physique à partir du lecteur logique et qui serait du genre :

    GetPhysicalDrives('C:\') et retournerait "\\.\PhysicalDrive0" ? ( j'ai pas trouvé )

    Merci.

  2. #2
    Membre éclairé Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 230
    Par défaut
    Bon, je me réponds à moi-même ...

    J'ai utilisé les WMI :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // 'Drive' est égale à 'C:' par exemple
    // On cherche la partition
    ObjSet := Services.ExecQuery('REFERENCES OF{Win32_LogicalDISK="'+Drive+'"} WHERE ResultClass=Win32_LogicalDiskToPartition ', 'WQL',wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
    Partition := DeviceIDFromAssoc(ObjSet);
    puis, de la partition, on passe au lecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ObjSet := Services.ExecQuery('REFERENCES OF{Win32_DiskPartition="'+Partition+'"} WHERE ResultClass=Win32_DiskDriveToDiskPartition','WQL',wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
    PhysicalDrive := AnsiReplaceStr(DeviceIDFromAssoc(ObjSet),'\\','\');
    au final, PhysicalDrive = "\\\\.\\PHYSICALDRIVE0" ... Bingo !

    J'utilise un marteau-pilon pour écraser une noix mais ça marche !

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

Discussions similaires

  1. Acces aux lecteurs
    Par Syliano dans le forum Administration
    Réponses: 4
    Dernier message: 10/09/2012, 13h30
  2. Empêcher l'accès aux lecteurs par GPO
    Par fukuda dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 09/04/2012, 17h50
  3. Difficultés d'accès aux lecteurs
    Par Ramdoulou dans le forum Périphériques
    Réponses: 0
    Dernier message: 16/09/2010, 17h02
  4. Accès physique au disque = accès aux données?
    Par martialuk dans le forum Sécurité
    Réponses: 18
    Dernier message: 17/09/2007, 21h25

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