我想每当拔下USB设备(USB转串口)后WINDOWS都会响一声,那么WINDOWS肯定是发了消息的,关键是我怎么去截获这个消息咧???

解决方案 »

  1.   

    参考:
    http://blog.csdn.net/radicwei/article/details/8752581
      

  2.   

      //USB插拔事件,PlugType {0:拔出;1:插入}
      TUDiskPlugEvent = procedure(PlugType: Integer) of object;
    TUSBDiskMessage = class
      private
        m_OnPlug: TUDiskPlugEvent;
        procedure WMDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE;
      public
        constructor Create;
        destructor Destroy; override;
      public
        procedure GetCurrentUSBS(var lstRet: TStringList);
        //获取指定目录所有指定扩展名的文件
        procedure GetFiles(dir: string; ext: string; var lstRet: TStringList);
      public
        property OnPlug: TUDiskPlugEvent read m_OnPlug write m_OnPlug;
      end;//实现
    procedure TUSBDiskMessage.WMDeviceChange(var Msg: TMessage);
    begin
      case Msg.WParam of
        32768:
          begin
            if Assigned(m_OnPlug) then
            begin
              m_OnPlug(1);
            end;
          end;
        32772:
          begin
            if Assigned(m_OnPlug) then
            begin
              m_OnPlug(0);
            end;
          end;
      end;
    end;你试试。