Page 1 sur 1

[R] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : mar. 09 févr. 2010 16:32
par elminio
Bonjour à tous,
Sur le forum dans la partie exemple, j'ai trouvé ce code qui permet de récupérer la lettre d'un lecteur de disque

Code : Tout sélectionner

; Récuperation de la lettre de lecteur du disque de sauvegarde
$nombre_disques = DriveGetDrive( "all" )
For $i = 1 to $nombre_disques[0]
    $var = DriveGetLabel($nombre_disques[$i])
    If $var = $nom_disque Then
        $repertoire_destination = $nombre_disques[$i]
    EndIf
Peut on adapter ce code afin de connaitre la lettre du lecteur de la clé usb à son insertion ?
Cdt,
Elminio

Re: [..] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : mar. 09 févr. 2010 18:02
par Serge63
voici une adaptation du code qui permet de voir la lettre de toutes les clés usb qui sont connectées :

Code : Tout sélectionner

$var = DriveGetDrive( "REMOVABLE" )
If NOT @error Then
    For $i = 1 to $var[0]
        MsgBox(4096,"Drive " & $i, $var[$i])
    Next
EndIf
 

Re: [..] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : mar. 09 févr. 2010 21:27
par Tlem
Ce sera plutôt la détection d'un périphérique de masse USB.
Si vous voulez déterminer si c'est une clé USB ou un disque dur, vous pouvez contrôler par rapport à la taille, mais l'écart commence à diminuer de plus en plus. ;)
► Afficher le texte

Re: [..] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : jeu. 11 févr. 2010 09:31
par elminio
Bonjour,
En fait je dois ajouter ce code dans un programme.
Ce programme à pour but de lancer un menu à l'insertion de la clé usb afin de proposer un choix entre :
1 - le transfert de donnée vers la clé USB
2 - le transfert de donnée de la clé USB vers le PC
Sachant que dans les deux cas il doit simplement transférer les données modifiées.
Pouvez vous me détailler le fonctionnement de votre code ?
Cdt,
Elminio

Re: [..] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : jeu. 11 févr. 2010 12:39
par Serge63
si tu veux te faciliter la vie, tu peux utiliser ce petit soft qui fonctionne très bien pour synchroniser des dossiers, quel que soit leur emplacement.

il est portable, configurable et léger.

http://www.clubic.com/telecharger-fiche ... nizer.html

Re: [..] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : jeu. 11 févr. 2010 15:07
par Eliferion
Bonjour elminio,

Je suis d'accord avec Serge63, synchronizer est certainement l'un des meilleurs si ce n'est le meilleur.

Cependant je te conseille d'aller à l'adresse où timmalos présente un script de Kairos nommé File Manager:
http://www.autoitscript.fr/forum/viewt ... 1&start=0

Tu y trouveras tout ce qu'il te faut.


Sinon je me permet de préciser le script de Tlem :
C'est un script avec une requête en WMI, largement utilisé en administration Windows et certaines applications.
L'intérêt du WMi est entre autre son interaction avec le système et le matériel local et distant.

Ici le script détecte tout matériel USB ajouté ou supprimé pendant le l'activation du script et retourne le lecteur (DevId) sur lequel il se lance.


Pour ma part j'utilise cette astuce :

Pour ce qui est du lecteur USB ou Disque dur externe, tu t'appuies sur le nom que tu attribue à ton lecteur.

Code : Tout sélectionner

$NomMonLecteurUSB = "Disque externe"

$var = DriveGetDrive( "all" )
If NOT @error Then
    For $i = 1 to $var[0]
        _testmonlecteur()
    Next
EndIf

Func _testmonlecteur()
    $Lecteur = $var[$i]
    $nom = StringLower(DriveGetLabel( $Lecteur ))
    if $nom = $NomMonLecteurUSB Then
         msgbox ("","Identification de mon lecteur"," C'est bien mon disque ou clef USB : " & $nom & @crlf & "                     trouvé sur le Lecteur " & $var[$i])
    ;~   _LanceSynchro() ; ici je créé ma fonction qui lance ma synchro ou toute autre action
     Else
;~       msgbox ("","Identification de mon lecteur"," C'est pas mon disque ou clef USB")
    EndIf
EndFunc
 
On peut tout aussi bien s'appuyer sur la présence d'un fichier ou d'un répertoire en particulier.

Re: [..] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : ven. 12 févr. 2010 09:54
par elminio
1 - le transfert de donnée vers la clé USB
2 - le transfert de donnée de la clé USB vers le PC
J'ai oublié quelques infos, il y a un transfert du PC1 vers la clé USB et ensuite il y a un second transfert de la clé USB vers le PC2
Ce programme doit me permettre la mise à jour antivirus d'un pc qui n'a pas d'accès réseaux.
Avec le moins de manipulation possible car la personne débute en informatique.
Je vais tester le programme "synchroniser" et vos codes.

Re: [..] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : jeu. 25 févr. 2010 12:45
par elminio
Merci serge63 mais synchronizer me convient pas.
Par contre j'ai revu m'a copie :
le script doit réaliser une détection de la lettre du lecteur,
puis télécharger un fichier zip situé sur une adresse http,
décompressé ce fichier dans un répertoire sur la clé usb
et enfin déconnecter la clé du port usb.
Cdt,
Elminio

Re: [..] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : jeu. 25 févr. 2010 17:14
par elminio
Comment faire pour remplacer C:\ par la variable ?

Code : Tout sélectionner

$var = DriveGetDrive( "removable" )
If NOT @error Then
    For $i = 1 to $var[0]
        InetGet("http://www.kaspersky.com/fr/avupdates?chapter=146669701&open=av-i386-weekly.zip", "[b]C:\[/b]av-i386-weekly.zip")
    Next
EndIf
 

Re: [..] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : jeu. 25 févr. 2010 18:28
par Tlem

Code : Tout sélectionner

$var[$i] & "\av-i386-weekly.zip"

Re: [R] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : ven. 26 févr. 2010 10:26
par elminio
Merci Tlem pour ton aide.

Re: [R] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : jeu. 04 mars 2010 15:23
par elminio
Par contre en faisant un test avec MsgBox, je me suis aperçu qu'il détectait a: aussi mais il n'y pas de disquette,
pourquoi détecte t'il le lecteur a :?

Code : Tout sélectionner

$var = DriveGetDrive( "removable" )
If NOT @error Then
    For $i = 1 to $var[0]
        MsgBox(64, "Mise à Jour Antivirus", $var[$i])
    Next
EndIf

Re: [..] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : ven. 05 mars 2010 00:06
par Tlem
Par ce que A est un lecteur amovible (removable).
Vous devez aussi utiliser DriveStatus() pour savoir si il y à un média dedans. ;)

Re: [..] Comment récupérer la lettre d'un lecteur (Clé USB) ?

Posté : ven. 05 mars 2010 14:28
par elminio
J'ai intégré DriveStatus() est plus de problème,
Merci.