【问题标题】:c++, windows 7: recognize usb thumbdrive was connected and recognize usb identifier?c++,Windows 7:识别 USB 拇指驱动器已连接并识别 USB 标识符?
【发布时间】:2011-11-17 19:47:22
【问题描述】:

我想编写一个软件,当它连接到 USB 端口时,它会自动将一些文件复制到 USB 拇指驱动器上。为此我想知道:

  1. 如何编写一个在 USB 拇指驱动器连接时收到通知的 c++ 应用程序?

  2. 有什么方法可以识别 USB 闪存盘,以便我可以跟踪是否已经插入了新的 USB 闪存盘?

【问题讨论】:

  • 考虑编写一个简短的 Powershell 脚本来执行此操作。 C++当然可以做到,但是有点过分了
  • 这是病毒吗?你在伊朗工作吗?
  • 这是特定于一个特定的拇指驱动器(即您是否需要通过其序列号来识别它)还是您想为每个拇指驱动器、外部硬盘、MP3 播放器、相机...?
  • :) 这不是病毒。它适用于嵌入式系统
  • 我想为许多拇指驱动器执行此操作,但拇指驱动器的类型都是相同的。另外,我想知道是否已经插入了拇指驱动器 - 最好这不应该基于拇指驱动器上的文件,而是最好通过识别一些序列号左右。

标签: c++ winapi usb-drive


【解决方案1】:

我认为您可以使用 WM_DEVICECHANGE 窗口消息在设备被插入或从系统中移除时得到通知,这里是进一步阅读的链接http://msdn.microsoft.com/en-us/library/windows/desktop/aa363480%28v=vs.85%29.aspx

【讨论】:

    【解决方案2】:

    Krister 的回答涵盖了基础知识。他没有提到的是如何做(2),识别它。您正在寻找DBT_DEVTYP_DEVICEINTERFACE 到达事件。此事件包含一个dbcc_name,它标识了确切的设备。 (前提是设备符合 USB 规范并具有唯一的序列号;不要指望廉价的中国设备。)

    【讨论】:

      猜你喜欢
      • 2022-10-15
      • 2021-01-04
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多