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 :

[USB] Ejection d'un disque [FAQ]


Sujet :

API, COM et SDKs Delphi

  1. #61
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Salut à tous !

    Mon grain de sel, et mes tests à l'instant :
    je plante une clé USB et un disque externe USB aussi dans ma machine puis,
    clic droit sur Poste de travail / Gérer / Stockage / Lecteurs logiques
    et là, je constate que
    • la clé est vue dans la colonne "Type" comme "Disque amovible" ;
    • le disque comporte 3 partitions (créées par votre serviteur il ya qq mois) qui sont vues comme "Disque local".


    (Un truc que j'avais remarqué à propos de ce disque (mais est-ce lié aux 3 partoches ?), c'est que "Clic gauche" sur l'icône en Systray puis "Arrêter périphérique de stockage de masse", ça ne le fait pas : "impossible d'arrêter bla bla...".
    Alors qu'il n'y a aucun souci avec ma(es) clé(s).)


    Un test rapide avec un petit bricolo où j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if (SHFileInfo.dwAttributes and SFGAO_REMOVABLE  <> 0) then attrs := attrs + 'rem';
    m'affiche bien "rem" à propos de la clé -- Mais pas à propos du disque USB !

    Chercher de ce côté-là ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      ShGetFileInfo(PChar(filename), 0, SHFileInfo, SizeOf (SHFileInfo),
        SHGFI_TYPENAME or SHGFI_DISPLAYNAME or SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_ATTRIBUTES);
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  2. #62
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut Jipété

    Tout d'abord, merci de t'être repenché un peu sur ce sujet !
    Ensuite, concernant ta réponse, je ne pense pas que ShGetFileInfo puisse nous être utile dans ce contexte. J'ai lu rapido ce qui se disait sur la MSDN, et j'en ai conclus que c'est utiliser pour obtenir des infos sur un fichier et non un support (à moins que je n'ai pas trop compris la finalité de ton idée).

    Pour ce qui est du disque Amovible, je ne me rappelle plus trop... Faudrait éventuellement voir du côté de GET_MEDIA_TYPES ainsi que STORAGE_MEDIA_TYPE. Le souci, c'est que je n'aurai probablement pas le temps de m'y pencher.

  3. #63
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    moralité : changer mon Icône
    Ou modifier les noms de volumes / types de partition... Par exemple, "imposer" du FAT32 sur tes clés USB, et du NTFS sur tes disques durs amovibles, ou la présence du mot "KEY" dans le nom de volume d'une clé USB, et "DISK" pour un disque.

    Autre solution : tenter d'analyser le MBR pour voir s'il n'y aurait pas une information discriminante quelque part... Sait-on jamais ? Si le disque dur a été formaté la première fois en étant connecté en IDE/SATA, peut-être en reste-t'il une trace dans le MBR et les informations de partition ?
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  4. #64
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Salut Ero !
    Citation Envoyé par ero-sennin Voir le message
    Ensuite, concernant ta réponse, je ne pense pas que ShGetFileInfo puisse nous être utile dans ce contexte.
    Ben je t'avouerai que le contexte je l'ai pas étudié,

    Citation Envoyé par ero-sennin Voir le message
    Faudrait éventuellement voir du côté de GET_MEDIA_TYPES ainsi que STORAGE_MEDIA_TYPE.
    Ah ouais, ça a l'air sympa, juste un truc qui m'embête :
    Minimum supported client : Windows XP
    Alors moi, avec mon dinosaure (solid as a rock, hein !) sous w2k, je pourrai pas tester/pas aider,

    Citation Envoyé par ero-sennin Voir le message
    Le souci, c'est que je n'aurai probablement pas le temps de m'y pencher.
    Moi non plus,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #65
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bon, je reviens d'un déplacement , et vous remercie des pistes indiquées .
    il doit y avoir solution puisque wmiSysinfos de dipisoft
    ici
    fait la distinction , donc une piste serait la WMI , ce post tombe fort à propos , merci cincap

    je vais me ré-attelé à la tâche lors de mes "temps libres"

    en attendant , mon icône sera moins explicite et indiquera juste que c'est de l'USB
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #66
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    WMI est bien une mine d'informations , permettant même de savoir s'il faut déconnecter ou non avant d'ejecter .
    Mon problème maintenant , est de faire le lien entre Disque logique et Disque Physique et là , je galère

    suite au prochain épisode
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #67
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Mon problème maintenant , est de faire le lien entre Disque logique et Disque Physique et là , je galère
    Un truc dans le genre de ce que renvoie diskpart ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo list volume | diskpart
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  8. #68
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    Pour mon article Dupdisk, j'ai été confronté un peu au même problème...

    Cette fonction renvoit la liste des disque logique pour
    un # de disque physique via wmi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    //==============================================================================
    //== Obtien la lettre associée d'un Numéro de disque physique via WMI
    //== source des requêtes WMI dans cette fonction
    //==  http://msdn2.microsoft.com/en-us/library/aa394592.aspx
    //== L'avantage d'utilisé OLE Atomation avec WMI, c'est que la syntax
    //== Delphi devient semblable à du VBScript...
    //== et il exsite beaucoup d'exemple en VBScript.
    //==
    //== use urlMon,ActiveX,ComObj
    //==============================================================================
    Function GetLogicalDriveLetter(PhisicalDrive: Integer): String;
    Var
      //== Moniker stuff ==
      hr: HResult;
      wsWMIConnectionStr: widestring;
      oBindCtx: IBindCtx; // BindContext
      oIMoniker: IMoniker; // IMoniker interface
      oIDispatch: IDispatch; // WMI connection
      oleWMI: OleVariant;
      oDisks, oDisk: OleVariant; // Objet Disks (physique)
      oPartitions, oPartition: OleVariant; // Objets Partitions
      oLogicalDisks, oLogicalDisk: OleVariant; // Objets LogicalDisk
      oEnumDisk, oEnumPart, oEnumVolume: IEnumvariant; // Ennumerations
      ulParsed: ULONG;
      sDiskPhysique: String;
      sPartition: String;
      sDiskLogique: String;
      query: String;
    Begin
      //== Utilise WMI a travers OLE et une Session Moniker...
      //== Source http://msdn2.microsoft.com/en-us/library/aa383539.aspx
      //==        http://msdn2.microsoft.com/en-us/library/aa389763.aspx
      //==        http://msdn2.microsoft.com/en-us/library/ms221192.aspx
      //== Initialise les objets COM ==
      CoInitialize(Nil);
      sDiskLogique := '';
      Try
      //== DEBUT Equivalent à GetObject de VBScript via OLE ==
      //== voir: http://support.microsoft.com/kb/122288 ==
        //== Obtient un bind Context ==
        hr := CreateBindCtx(0, oBindCtx);
        If hr <> 0 Then OleCheck(hr);
        //== Obtient IMoniker interface  ==
        wsWMIConnectionStr := 'winmgmts:\\.\root\cimv2';
        hr := MkParseDisplayNameEx(oBindCtx, PWideChar(wsWMIConnectionStr), ulParsed, oIMoniker);
        If hr <> 0 Then OleCheck(hr);
        //== Obtient un objet WMI  ==
        hr := oIMoniker.BindToObject(oBindCtx, Nil, IUnknown, oIDispatch);
        If hr <> 0 Then OleCheck(hr);
        oleWMI := oIDispatch;
      //== FIN Equivalent à GetObject de VBScript ==
     
        //== Trouve tous les disques Physiques ==
        query := 'SELECT Caption, DeviceID FROM Win32_DiskDrive';
        oDisks := oleWMI.ExecQuery(query);
        oEnumDisk := IUnknown(oDisks._NewEnum) As IEnumVariant;
        While oEnumDisk.Next(1, oDisk, ulParsed) = 0 Do
        Begin
          sDiskPhysique := oDisk.DeviceID;
          If StrToInt(sDiskPhysique[length(SDiskPhysique)]) = PhisicalDrive Then
          Begin
            //== Pour chaque disque, trouve toutes les partitions ==
            query := 'ASSOCIATORS OF {Win32_DiskDrive.DeviceID=''';
            query := query + sDiskPhysique;
            //uery := ''' OR Win32_DiskDrive.DeviceID=''';
            //query := query + sDiskPhysique+1;
            query := query + '''} WHERE AssocClass = Win32_DiskDriveToDiskPartition';
            oPartitions := oleWMI.ExecQuery(query);
            oEnumPart := IUnknown(oPartitions._NewEnum) As IEnumVariant;
            While oEnumPart.Next(1, oPartition, ulParsed) = 0 Do
            Begin
              sPartition := oPartition.DeviceID;
              //== Pour chaque partition, Trouve les Disques Logiques (lettre) ==
              query := 'ASSOCIATORS OF {Win32_DiskPartition.DeviceID="';
              query := query + sPartition;
              query := query + '"} WHERE AssocClass = Win32_LogicalDiskToPartition';
              oLogicalDisks := oleWMI.ExecQuery(query);
              oEnumVolume := IUnknown(oLogicalDisks._NewEnum) As IEnumVariant;
              While oEnumVolume.Next(1, oLogicalDisk, ulParsed) = 0 Do
              Begin
                //== Accumule les lettres associées au disque Physique demandé ==
                sDiskLogique := sDiskLogique + oLogicalDisk.DeviceID;
              End;
            End;
          End;
        End;
      Finally
        //== Liberatrion des objets COM ==
        CoUninitialize();
        result := sDiskLogique;
      End;
    End;
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  9. #69
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    ce serait plutôt l'inverse , une fonction du genre :

    Function GetPhysicalDrive(LogicalDrive: String): String;

    pour obtenir par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    GetPhysicalDrive('C:');  --> \\\\.\\PHYSICALDRIVE1
    GetPhysicalDrive('D:');  --> \\\\.\\PHYSICALDRIVE1  
    GetPhysicalDrive('F:');  --> \\\\.\\PHYSICALDRIVE0
    Effectivement je me penche sur les ASSOCIATORS OF
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #70
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    ce serait plutôt l'inverse
    Je sais bien... mais c'est un point de départ...
    Et je n'ai pas le temps de l'écrire à l'envers pour vous....

    Alors Bonne continuité dans votre code.
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  11. #71
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Eric Boisvert Voir le message
    Je sais bien... mais c'est un point de départ...
    Et je n'ai pas le temps de l'écrire à l'envers pour vous....
    Je n'en demande pas tant , et merci pour ce code

    en fait j'avance et je découvre

    j'en suis a un mix de deux "WMISQL"
    1- 'REFERENCES OF {Win32_LogicalDISK="C:"} WHERE ResultClass=Win32_LogicalDiskToPartition '

    ici je peux obtenir les infos de partition dans la partie deviceID de l'antécédent ce qui me donne "Disk #0, Partition #2" pour le DEVICEID

    2-REFERENCES OF {Win32_DiskPartition="Disk #0, Partition #2"} WHERE ResultClass=Win32_DiskDriveToDiskPartition

    ici , toujours dans antécédent, j'obtiens la valeur cherchée
    ce qui me donne : \\\\\\\\.\\\\PHYSICALDRIVE0

    Me reste "plus qu'a" traiter correctement les informations de antécédent pour en faire des variables , encore quelques efforts en perspective ....

    [Edit] Un premier resultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    // drive sous la forme 'C:' 
    //uses     WbemScripting_TLB, Variants, ActiveX, StrUtils;
     
    // Constantes WMI
    const
      STR_LOCALHOST = '.';
      STR_CIM2_ROOT = 'root\cimv2';
      STR_CLASS     = 'Win32_DISKDRIVE';
    // Autres
    const
      STR_EMPTY = '';
     
    function GetPhysicalDrive(Drive : String) : String;
      var
       Locator:ISWbemLocator;
       Services:ISWbemServices;
       SObject:ISWbemObject;
       ObjSet:ISWbemObjectSet;
       Enum:IEnumVariant;
       Value:Cardinal;
       partition : String;
     
        function DeviceIDFromAssoc(ObjectSet : ISWbemObjectSet): String;
        var   SObject:ISWbemObject;
            Enum:IEnumVariant;
            TS:TStrings;
            p,q : Integer;
        begin
         // Obtenir DeviceID de Antécédent
         Enum :=  (ObjSet._NewEnum) as IEnumVariant;
         // un objet trouvé ?
         if (Enum.Next(1, TempObj, Value) = S_OK) then begin
          SObject := IUnknown(TempObj) as ISWBemObject;
          if (SObject <> nil) then begin
            // Acceder aux propriétés
            SObject.Properties_;
            TS := TStringList.Create();
            try
              TS.Add(SObject.GetObjectText_(0));
              p:=pos('DeviceID=\"',TS.Text)+11;     // "sale" mais efficace
              q:=pos('Dependent',TS.Text)-6;        //
              Result:=Copy(TS.Text,p,q-p);
            finally
              FreeAndNil(TS);
            end;
          end;
          end;
        end;
       try
        Locator := CoSWbemLocator.Create();
        // Connection au service WMI
        Services := Locator.ConnectServer(
            STR_LOCALHOST,        {local}
            STR_CIM2_ROOT,        {root}
            STR_EMPTY, STR_EMPTY, {Utilisateur et Mot de passe -en local inutile-}
            STR_EMPTY,STR_EMPTY, 0, nil);
        // Acceder aux données
       ObjSet := Services.ExecQuery('REFERENCES OF {Win32_LogicalDISK="'+Drive+'"} WHERE ResultClass=Win32_LogicalDiskToPartition ',
                                    'WQL',wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
     
       Partition:=DeviceIDFromAssoc(ObjSet);
       // on passe de la partition au disque physique
       ObjSet := Services.ExecQuery('REFERENCES OF {Win32_DiskPartition="'+Partition+'"} WHERE ResultClass=Win32_DiskDriveToDiskPartition',
                                    'WQL',wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
     
       result:=AnsiReplaceStr(DeviceIDFromAssoc(ObjSet),'\\','\');
       except
         result:='unknown';
       end;
      end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

+ Répondre à la discussion
Cette discussion est résolue.
Page 4 sur 4 PremièrePremière 1234

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/09/2009, 16h31
  2. Ejecter disque dur usb
    Par maloups dans le forum Composants
    Réponses: 4
    Dernier message: 27/08/2007, 13h52
  3. Réponses: 2
    Dernier message: 29/03/2007, 15h45
  4. Quel est le nom des dIsques dur usb dans /dev
    Par MrEddy dans le forum Administration système
    Réponses: 5
    Dernier message: 19/10/2004, 21h06
  5. Monter un disque dur USB
    Par Iced Earth dans le forum Matériel
    Réponses: 5
    Dernier message: 13/01/2003, 22h02

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