一旦我的设备通过USB连接,就触发一个exe

时间:2012-04-26 05:18:53

标签: c++ c winapi usb device-driver

一旦我的嵌入式设备连接到我的PC的USB端口,它应该触发exe作为事件。我怎么能实现这个?

我是否应该创建一项服务来继续监控USB连接器总线,或者Windows中是否有可用的默认API来实现这一目标?

感谢。

3 个答案:

答案 0 :(得分:3)

无法在连接时启动简单的exe。但是您可以编写一个服务或用户模式应用程序来监听设备到达事件。 WM_DEVICECHANGE被发送到所有(registered)应用程序,其设备接口guid代表插入的设备。然后,您可以将此ID与setupapi一起使用,以查看它是否是您的设备。

收到该事件后,您可以启动可执行文件。

答案 1 :(得分:2)

根据您的Windows版本,可能使用workaround使用USB驱动器根文件夹中的AutoRun.inf文件。出于安全原因,默认情况下这是关闭的,在Windows 7中根本不允许。

要以更强大的方式实现相同的效果,您需要创建一项服务来监控您的设备是否已连接(例如,监控连接的Apple设备的iTunesHelper)。

答案 2 :(得分:0)

最简单的解决方案可能是一个简单的UMDF驱动程序。这基本上是一个连接设备时调用的小型COM组件。