Момент подключение USB

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Artorios, 23 Sep 2013.

  1. Artorios

    Artorios New Member

    Joined:
    23 Feb 2012
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    Всем привет!Поделитесь пожалуйста инфой,как вы отслеживаете момент втыкивания флешки.
    Естественно меня интересует только WinApi,и без бесконечных циклов в патоке))))
     
  2. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    для отслеживания подключения нужно обрабатывать сообщение WM_DEVICECHANGE, небольшой пример:
    Code:
    type
      TForm = class
        .......
      protected
        procedure wmDeviceChangeProc(var Msg: TMessage); message WM_DEVICECHANGE;
      end;
    
    
      PDevBroadcastHdr = ^TDevBroadcastHdr;
      _DEV_BROADCAST_HDR = record
        dbch_size: DWORD;
        dbch_devicetype: DWORD;
        dbch_reserved: DWORD;
      end;
      {$EXTERNALSYM _DEV_BROADCAST_HDR}
      TDevBroadcastHdr = _DEV_BROADCAST_HDR;
      DEV_BROADCAST_HDR = _DEV_BROADCAST_HDR;
      {$EXTERNALSYM DEV_BROADCAST_HDR}
    
    const
      DBT_DEVICEARRIVAL= $8000;
      DBT_DEVTYP_VOLUME = 2;
    
    
    procedure TForm.wmDeviceChangeProc(var Msg: TMessage);
    begin
      case Msg.WParam of
        DBT_DEVICEARRIVAL: begin then
      
          if PDevBroadcastHdr(Msg.LParam)^.dbch_devicetype = DBT_DEVTYP_VOLUME then begin
            
            MessageBoxA(0,'Inserted flash drive',nil,0);
          end;
        end;
      end;
    end;
     
  3. Artorios

    Artorios New Member

    Joined:
    23 Feb 2012
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    Не, это сообщения ловить не-то.......Чувствую я,что есть более изящный вариант.
     
  4. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Ловить сообщения - рекомендуемый вариант.
    http://kaimi.ru/2012/07/windows-usb-monitoring/
     
    _________________________