Identification du lecteur ou drive

Résolu
JeanMarcus Messages postés 149 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 10 mars 2014 - 21 juin 2007 à 15:45
JeanMarcus Messages postés 149 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 10 mars 2014 - 22 juin 2007 à 15:27
Bonjour !

 Je suis en VB6  et malgre diverses recherches ,je cherche tjs un moyen simple d envoyer des fichiers ( image fichiers etc etc )   depuis  soit une cle usb ou un cd ou autre vers un dossier que je cree a l installation     

A partir d' un CD ou une cle usb  je voudrais installer mon logiciel sur le disque dur du PC en installant divers utilitaires a moi  ds un meme repertoire  selectionne ou creee style :
 -  filecopy     "D:\aa"    , "C:\Zjm\ aa"

Or le probleme est que "D" n est pas forcement le lecteur CD     ou le lecteur de cle usb
Je voudrais savoir comment identifier la source "D" , "E"  , "H" etc et la coller dans un label par exemple
 
 j ai essaye   avec   App.path     , ca ne marche pas 

en fait je voudrais que  la  lettre identifiant  la source    s affiche ds un label ou autre  afin de donner cette instruction ds la ligne   filecopy .. Merci
 
Amicalement

JeanMarcus

7 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
21 juin 2007 à 15:48
Mouais, et si le type a deux lecteur CD, tu fais comment ?

Non le plus simple et le plus sûr c'est de laisser l'utilisateur choisir le lecteur avec un DriveListBox par exemple.
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
21 juin 2007 à 15:50
les Apis sont tes amies :



Private Const
DRIVE_CDROM As Long = 5
Private Const DRIVE_FIXED As Long = 3
Private Const DRIVE_NO_ROOT_DIR As Long = 1
Private Const DRIVE_RAMDISK As Long = 6
Private Const DRIVE_REMOTE As Long = 4
Private Const DRIVE_REMOVABLE As Long = 2
Private Const DRIVE_UNKNOWN As Long = 0

Private Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

,

----

By Renfield

et ensuite

MsgBox GetDriveType("G:")

me donne bien 2 (Removable)... c'est une clé USB

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
21 juin 2007 à 15:55
Bonjour,

Je vois que tu as fait enfin le nécessaire et tu vas donc recevoir mon aide.
Une chose importante, toutefois : comment comptes-tu identifier que tu es sur le bon lecteur CD ou la bonne clé USB, puisqu'il peut y en avoir plusieurs ...
Il te faut un moyen supplémentaire d'identification (soit le nom donné au support, soit le nom d'un fichier qu'il contient dans le répertoire racine).
Si tu choisis un nom de fichier dans le répertoire racine, ce nom devra être tel qu'on ne puisse le trouver nulle part ailleurs que sur le support depuis lequel tu copies.

Réponds donc déjà à cette question en indiquant :
- si tu choisi d'utliser le nom donné au support : le nom que tu lui as donné
- si tu choisis la présence d'un fichier dans le répertoire racine : le nom donné à ce fichier
Cette précision est importante car, selon ton choix, l'écriture du code sera différente.
J'attends ta réponse.
3
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
21 juin 2007 à 16:33
Bon...
Je vois que c'est maintenant le silence !

Voilà donc un exemple d'identification d'un support amovible (CD ou clé USB) contenant dans son répertoire racine un fichier nommé etvoilalezouzou.txt

Sur ta form : un contrôle DriveListBox nommé Drive1

Code

Private Const DRIVE_CDROM As Long = 5
Private Const DRIVE_REMOVABLE As Long = 2


Private Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long


Private Sub Form_Activate()
  Drive1.Visible = False
  For i = 1 To Drive1.ListCount - 1
     toto = GetDriveType(Drive1.List(i))     If toto DRIVE_CDROM Or toto DRIVE_REMOVABLE Then
       If Dir(Drive1.List(i) & "\etvoilalezouzou.txt") <> "" Then
         MsgBox Drive1.List(i) & "  est le lecteur que tu cherches"
       End If
     End If
  Next
End Sub

C'est vraiment tout ...
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JeanMarcus Messages postés 149 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 10 mars 2014
22 juin 2007 à 14:49
bjr darksidius ...


simplement si le type a deux ou + de lecteur cd  , je pense que la lettre  identifiant tel ou tel lecteur est differente  donc  selectionnable de maniere individuelle , non !

Amicalement .......................... JeanMarcus
0
JeanMarcus Messages postés 149 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 10 mars 2014
22 juin 2007 à 15:22
re njr -  ci joint  explication plus expliccitte sii je peux m permettre

je voudrais   envoyer mon setup d installation sur un repertoire precis du disque dur "c" du pc recevant ce setup  ... mais dans ce setup , il y a des instructions pour copier des fichiers ou autre , situer sur le cd  ( ou cle usb ) qui se trouve soit sur "d" , "e", "f"  etc 

exemple :
je voudrais installer le log "setup_ZJM.exe" situe dans une cle usb ..
- sur cette cle  se trouve      :     - setup_zjm.exe
                                                - repertoire 001 avec les fichiers :   a et b

a l'intallation du setup soit par autorun ou manuellement , ce setup  s ' installe par exemple sur "c:\essai"
et mon probleme est d installer  par filecopy  les fichiers a et b contenus sur la cle directement sur "c:\essai" de la maniere suivante si possible

dim i0,i1
 
form load label1.caption " identification  du lecteur ou drive" > a trouver ?
i0 = "c:\essai\..."
i1 = "label1.caption:\repertoire 001\a "   

file copy i1, i0
end sub

Jespere etre plus clair   sinon je reformulerai mieux
merci et amicalement

JeanMarcus
0
JeanMarcus Messages postés 149 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 10 mars 2014
22 juin 2007 à 15:27
bjr jmfmarques

 non , ce n'est pas le silence ,,,,,,, j ai repondu
je vais essayer avec ce que tu m a donne comme expliquation et voir !!!!!!!

merci ..........        amicalement 

JeanMarcus


 
0
Rejoignez-nous