一旦我的嵌入式设备连接到我的PC的USB端口,它应该触发一个exe作为一个事件。我怎样才能做到这一点?触发一次exe我的设备通过USB连接
我应该创建一个服务来监视USB连接器总线,还是在Windows中有可用的任何默认API来实现?
感谢。
一旦我的嵌入式设备连接到我的PC的USB端口,它应该触发一个exe作为一个事件。我怎样才能做到这一点?触发一次exe我的设备通过USB连接
我应该创建一个服务来监视USB连接器总线,还是在Windows中有可用的任何默认API来实现?
感谢。
不可能在连接时启动一个简单的exe文件。但是您可以编写一个服务或用户模式应用程序来监听设备到达事件。 WM_DEVICECHANGE通过设备接口guid发送给所有(registered)应用程序,该设备接口guid代表插入了哪个设备。然后,您可以使用setupapi的此ID来查看它是否是您的设备。
在收到该事件后,您可以启动您的可执行文件。
来自此线程的示例完全是这个http://www.dotnet247.com/247reference/msgs/32/164968.aspx – 2012-04-28 09:47:08
根据您的Windows版本,使用USB驱动器的根文件夹中的AutoRun.inf文件的workaround可能是可能的。出于安全原因,这是默认关闭的,并且在Windows 7中根本不允许。
为了以更稳健的方式达到相同的效果,您需要创建一项服务来监控您的设备是否连接(例如,监控连接的Apple设备的iTunesHelper)。
最简单的解决方案可能是一个微不足道的UMDF驱动程序。这基本上是您的设备连接时调用的一个小型COM组件。
EXE在什么情况下运行?当前交互式登录用户?一项服务相当简单,但在预定义帐户下运行。 – MSalters 2012-04-26 07:51:40
[如何在插入USB时触发事件]可能的重复(http://stackoverflow.com/questions/10259805/how-to-trigger-an-event-when-usb-is-plugged) – Deanna 2012-04-26 12:09:42