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 :

Detection de l'insertion/retrait 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
    Points : 3 766
    Points
    3 766
    Par défaut Detection de l'insertion/retrait d'une clef USB
    Voici le code minimaliste de detection/retrait d'un peripherique USB
    le .cpp
    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
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    #define DBT_DEVICEARRIVAL               0x8000  // le systeme a detecte un nouveau device
    #define DBT_DEVICEREMOVECOMPLETE        0x8004  // device est completement desactive
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void   __fastcall   TForm1::GetDeviceChange(TMessage   &Msg)
    {
            switch   (Msg.WParam)
            {
                    case   DBT_DEVICEARRIVAL:
                    ShowMessage("Peripherique USB connecte");
                    break;
                    case   DBT_DEVICEREMOVECOMPLETE:
                    ShowMessage("Peripherique USB deconnecte");
                    break;
            }
    }
    le .h
    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
     
    //---------------------------------------------------------------------------
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published: // IDE-managed Components
    private: // User declarations
    public:  // User declarations
            __fastcall TForm1(TComponent* Owner);
            void   __fastcall   TForm1::GetDeviceChange(TMessage &Msg);
              BEGIN_MESSAGE_MAP
                    MESSAGE_HANDLER(WM_DEVICECHANGE,TMessage,GetDeviceChange)
              END_MESSAGE_MAP(TForm)
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 229
    Points : 79
    Points
    79
    Par défaut
    merci pour ce chouette code !
    Une question néanmoins : comment sais tu que c'est une clé USB et pas autre chose qui est connecté ?

    Edit : je pense avoir la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PDEV_BROADCAST_HDR lpdb = PDEV_BROADCAST_HDR(Msg.LParam);
    if (lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME)
    {
    }

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

Discussions similaires

  1. Vérifier une Clef USB (Flash disk)
    Par kmaniche dans le forum C++Builder
    Réponses: 12
    Dernier message: 23/09/2006, 21h08
  2. Utiliser une clef USB comme de la ram de mémoire vive
    Par Lorponos dans le forum Composants
    Réponses: 28
    Dernier message: 18/08/2006, 18h32
  3. Sauvegarder sur une clef usb par ex
    Par pasbonte dans le forum Access
    Réponses: 3
    Dernier message: 12/07/2006, 18h23
  4. [Nero] Utiliser un CD-RW comme une clef USB
    Par Furius dans le forum Périphériques
    Réponses: 6
    Dernier message: 24/10/2005, 17h22
  5. [Système] Trouver une clef USB avec PHP
    Par chico_du_33 dans le forum Langage
    Réponses: 8
    Dernier message: 05/10/2005, 17h29

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