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

VB 6 et antérieur Discussion :

Lister les disques durs USB, les clés ainsi que les appareils photos


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut Lister les disques durs USB, les clés ainsi que les appareils photos
    Bonjour

    Je dois lister et pouvoir accéder au contenu de disque durs, clés et appareil photo connectés en USB. Sous XP pas de soucis mais sous Win7, les appareils photos ne sont plus reconnus comme des disques de masses mais comme des ... appareils photos ;-)

    Du coup mon ancienne routine WMI ne fonctionne plus.

    J'ai fais ce morceau de code tout à l'heure : Je vois bien mon appareil photo ainsi que tout ce qui est USB (cela va du contrôleur à la souris) , mais je ne vois pas comment faire pour les distinguer et n'afficher que mes storages

    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
     
    strComputer = "."
     
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colDevices = objWMIService.ExecQuery _
       ("Select * From Win32_USBControllerDevice")
     
    For Each objDevice In colDevices
       strDeviceName = objDevice.Dependent
       strQuotes = Chr(34)
       strDeviceName = Replace(strDeviceName, strQuotes, "")
       arrDeviceNames = Split(strDeviceName, "=")
       strDeviceName = arrDeviceNames(1)
       Set colUSBDevices = objWMIService.ExecQuery _
           ("Select * From Win32_PnPEntity Where DeviceID = '" & strDeviceName & "'")
       For Each objUSBDevice In colUSBDevices
     
       If InStr(1, UCase(objUSBDevice.Description), "CANON") > 0 Then
        Call List1.AddItem(objUSBDevice.Description)
       End If
     
     
    '       WScript.Echo objUSBDevice.Description
    '       WScript.Echo objUSBDevice.PnPDeviceID ' Changed from Description to PnPDeviceID
                                     'as this script can be altered to return any property
                                     'of the Win32_USBControllerDevice collection.
       Next
    Next
    Si vous aviez une idée
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    As-tu essayé avec ce type de code ?
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    J'ai déjà regardé dans cette direction, mais l'appareil n'est plus reconnu comme un lecteur mtn ...
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  5. #5
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    J'ai trouvé pour afficher la description de l'appareil dans une combo :

    Nom : Appareil photo 2.jpg
Affichages : 2078
Taille : 27,6 Ko

    avec le code suivant :

    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
     
      Dim strDeviceName As String
      Dim strQuotes As String
      Dim arrDeviceNames() As String
      Dim objWMIService As Object
      Dim colDevices As Object
      Dim objDevice As Object
      Dim colUSBDevices As Object
      Dim objUSBDevice As Object
     
      Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
      Set colDevices = objWMIService.ExecQuery("Select * From Win32_USBControllerDevice")
     
      For Each objDevice In colDevices
        strDeviceName = objDevice.Dependent
        strQuotes = Chr(34)
        strDeviceName = Replace(strDeviceName, strQuotes, "")
        arrDeviceNames = Split(strDeviceName, "=")
        strDeviceName = arrDeviceNames(1)
     
        Set colUSBDevices = objWMIService.ExecQuery("Select * From Win32_PnPEntity Where DeviceID = '" & strDeviceName & "'")
     
        For Each objUSBDevice In colUSBDevices
          If Not InStr(1, UCase(objUSBDevice.Description), "USB") > 0 And Not InStr(1, UCase(objUSBDevice.Description), "HID") > 0 And Not InStr(1, UCase(objUSBDevice.Description), "PIH") > 0 Then
            If sListLetter <> "" Then
              sListLetter = sListLetter + ","
            End If
     
            If InStr(1, UCase(objUSBDevice.Description), "CANON") Then
              sListLetter = sListLetter + objUSBDevice.Description
            End If
     
          End If
        Next
      Next
    Par contre je n'arrive pas à ouvrir l'arborescence des fichiers se trouvant sur la carte à partir de mon code (j'ai essayé avec Scripting.FileSystemObject mais cela me semble logique qu'il ne sache pas lire l'info).

    Dans l'explorateur Windows cela marche avec le path suivant : "Ordinateur\Canon EOS 5D Mark III"

    Pour l'exemple voici une capture écran de mon explorateur windows :

    Nom : Appareil photo.jpg
Affichages : 2050
Taille : 87,3 Ko
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  6. #6
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Je réponds un peu tard mais cela peut servir :

    Sur les appareils photos récents, il existe dans la configuration un paramètre pour qu'ils soient reconnu comme un périphérique de masse lors d'une connexion via USB. Ce paramètre correctement initialisé débloque le problème.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  7. #7
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Bonjour,

    Il y a aussi une solution avec la librairie vb6i qui a l'avantage de ne pas avoir à se trainer le boulet WMI qui est lent (comme le FileSystemObject).
    En plus c'est instantané. Ex.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_Load()
        Dim x As Long, ret() As DRIVE_INFOS
     
        Me.AutoRedraw=True
        For x = 1 To EnumDrives(ret())
            With ret(x)
                Me.Print x, .deviceNumber, .deviceType, .deviceDisks    ' DevideDisks énumère les lecteurs du disque concerné
            End With
        Next
    End Sub
    Citation Envoyé par excalybur Voir le message
    Bonjour

    J'ai moi même un canon 5D version I et je voudrais comme toi qu'il soit reconnue comme un lecteur de masse. Par contre je ne trouve pas le paramètre dont tu parle dans le menu du Canon 5D. Est-ce là que tu le cherche? Où est-ce qu'il est dans Windows 7 ? Et que chercher exactement ?

    Merci pour tes lumières.

    A bientôt
    En fait certains appareils émulent le port USB pour windows comme les portables sous Android par exemple.
    Il peut être nécessaire dans ces cas d'activer cette émulation.

  8. #8
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonjour

    Merci pour ta réponse e vais essayer.

    Je présume que SP6 et MZ Tools ne sont pas incompatible?

    A+

  9. #9
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Re

    Je pense que le site Visual Basic 6.1 est en révision. en effet il n'y a pas d'inscrivez-vous.

    Le contact de l'administrateur ne débouche pas.

    Une idée ?

    A+

  10. #10
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Il n'y a pas besoin d'inscription pour télécharger les librairies,
    l'inscription s'effectue ultérieurement lors de la primo utilisation de l'addin.
    Une procédure automatisée via Internet est automatiquement lancée
    et les références d'inscription seront celles utilisées pour reporter sur le forum.

    Sinon pour le contact Administrateur, le lien en bas de page après le copyright n'est pas fonctionnel ?!

  11. #11
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Re

    Pour le contact Administrateur, le lien en bas de page après le copyright n'est pas fonctionnel.

    J'ai téléchargé vb6.1. Exécuté l'installation. Et plantage de VB6 SP6 au démarrage ! Même après avoir redémarré le PC.

    J'ai désinstallé VB6.1 et VB6 marche de nouveau !

    Est-ce MzTools le problème? Ou Win 7 ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/03/2012, 17h53
  2. Lister les disque dur et connaitre leur type
    Par lenul79 dans le forum Linux
    Réponses: 7
    Dernier message: 05/04/2010, 18h33
  3. [parted] Lister les disques durs
    Par smarties dans le forum Linux
    Réponses: 5
    Dernier message: 30/12/2009, 19h31
  4. [WD 12] Lister tout les disque dur
    Par matt1704 dans le forum WinDev
    Réponses: 8
    Dernier message: 16/04/2009, 15h14
  5. Réponses: 8
    Dernier message: 28/09/2006, 09h35

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