一旦我的嵌入式设备连接到我的 PC 的 USB 端口,它应该触发一个 exe 作为事件。我怎样才能做到这一点?
我应该创建一个服务来继续监视 USB 连接器总线,还是 Windows 中是否有任何默认 API 可以实现这一点?
谢谢。
一旦我的嵌入式设备连接到我的 PC 的 USB 端口,它应该触发一个 exe 作为事件。我怎样才能做到这一点?
我应该创建一个服务来继续监视 USB 连接器总线,还是 Windows 中是否有任何默认 API 可以实现这一点?
谢谢。
在连接时启动的简单 exe 是不可能的。但是您可以编写一个服务或用户模式应用程序来监听设备到达事件。WM_DEVICECHANGE发送到所有(已注册)应用程序,其设备接口 guid 表示插入了哪个设备。然后您可以将此 id 与 setupapi 一起使用以查看它是否是您的设备。
收到该事件后,您可以启动可执行文件。
根据您的 Windows 版本,可以使用 USB 驱动器根文件夹中的 AutoRun.inf 文件来解决问题。出于安全原因,默认情况下这是关闭的,并且在 Windows 7 中根本不允许。
为了以更强大的方式实现相同的效果,您需要创建一个服务来监控您的设备是否已连接(例如,iTunesHelper 监控已连接的 Apple 设备)。
最简单的解决方案可能是一个简单的UMDF驱动程序。这基本上是连接设备时调用的一个小型 COM 组件。