Identification du lecteur ou drive

Résolu
Signaler
Messages postés
149
Date d'inscription
samedi 28 mai 2005
Statut
Membre
Dernière intervention
10 mars 2014
-
Messages postés
149
Date d'inscription
samedi 28 mai 2005
Statut
Membre
Dernière intervention
10 mars 2014
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
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.
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
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
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
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.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
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 ...
Messages postés
149
Date d'inscription
samedi 28 mai 2005
Statut
Membre
Dernière intervention
10 mars 2014

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
Messages postés
149
Date d'inscription
samedi 28 mai 2005
Statut
Membre
Dernière intervention
10 mars 2014

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
Messages postés
149
Date d'inscription
samedi 28 mai 2005
Statut
Membre
Dernière intervention
10 mars 2014

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