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

C++Builder Discussion :

Probleme pour recuperer le HDEVINFO d'une clef USB


Sujet :

C++Builder

  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut Probleme pour recuperer le HDEVINFO d'une clef USB
    Bonsoir
    A la la suite de cette discution j'ai essaye de tester un cable convertisseur USB //
    J'ai donc recupere des exemples et commence les testes, je n'ai aucune erreur mais mon HDEVINFO et systematiquement negatif, je ne vois pas ou se trouve l'erreur voici le code
    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
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    #include <setupapi.h> // ne pas oublier
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    // ClassGuid  {36FC9E60-C465-11CF-8056-444553540000}
    GUID GUID_DEVINTERFACE_USBPRINT = {0x36FC9E60, 0xC465, 0x11CF, {0x80, 0x56, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}};
    HDEVINFO hDevInfo;
    GUID hIdGuid;
      hIdGuid = GUID_DEVINTERFACE_USBPRINT;
      hDevInfo = SetupDiGetClassDevs(&hIdGuid, NULL, NULL, (DIGCF_PRESENT | DIGCF_DEVICEINTERFACE));
            if (hDevInfo == INVALID_HANDLE_VALUE)
            {
            return; // je passe systematiquement ici
            }
    }
    //---------------------------------------------------------------------------

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Je peu ecrire une fois sur le periferique USB // apres ce n'est plus possible, il semblerais que des info de l'imprimante ne sont pas transmises au circuit contenu dans la prise convertisseur
    voici le code
    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
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    // "\\\\?\\USB#Vid_04b8&Pid_0005#0HL550305090351140#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}"
    // "\\\\?\\USB#Vid_067b&Pid_2305#5&36c701f9&0&10#{a5dcbf10-6530-11d2-901f-00c04fb951ed}"
    HANDLE handle = CreateFile(
    "\\\\?\\USB#Vid_067b&Pid_2305#5&36c701f9&0&10#{a5dcbf10-6530-11d2-901f-00c04fb951ed}",
    FILE_READ_DATA | FILE_WRITE_DATA, FILE_SHARE_READ | FILE_SHARE_WRITE,
    NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
    DWORD written;
    unsigned char command[1];
    command[ 0 ] = StrToInt(Edit1->Text); // 0 à 255
    WriteFile( handle, command, 1, &written, NULL );
    CloseHandle( handle );
    }
    //---------------------------------------------------------------------------

Discussions similaires

  1. Réponses: 11
    Dernier message: 24/02/2010, 15h07
  2. probleme pour recuperer le schema d'une base sqlite
    Par ojouny dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 20/04/2009, 12h03
  3. Réponses: 7
    Dernier message: 30/03/2008, 14h07
  4. Réponses: 8
    Dernier message: 12/04/2007, 08h53
  5. probleme pour recuperer une valeur
    Par kespy13 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/04/2006, 10h18

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