当一个USB设备和电脑连接,该USB驱动是系统自动识别的。系统如何能启动一个已经安装的程序呢?
这个有点类似数码相机的处理软件,当数码相机和电脑连接后,系统会自动调用一个以前安装的相机处理程序,这个是怎么作到的呢?

解决方案 »

  1.   

    你需要自己制作该USB的驱动程序,将启动“应用程序”的代码加入其中,一旦USB设备连入电脑时,系统启动USB驱动程序时,你的应用程序就可以启动了!
      

  2.   

    to chenhq(chenhq)
       但是我的驱动程序是系统自动带的,不用做啊。
       如果不自己做一个驱动,把应用程序放在一个和这个驱动关联的地方(这个地方我不知道)能让系统启动USB驱动程序时,也启动这个应用程序?
      

  3.   

    安装的相机处理程序中可能就有过滤驱动之类的东东。当USB驱动启动时,过滤驱动也会被加载。如果在过滤驱动中启动应用程序就可以实现你说的功能了。
      

  4.   

    嗯,怎么讲,其实应该说它的驱动应该是在系统启动的时候就已经载入系统内存中了.你可以看一下这个目录:%systemroot&\inf,它下面有所有的设备驱动文件.
      

  5.   

    你讲的 系统(windows)自带的Driver 和 举的数码相机的例子是两码事。系统自带的Driver是透过 USB协议的 class subclass两个值决定的。安装过的数码相机Driver是透过 vid pid 决定的。
      

  6.   

    我想做的就是当系统知道我的这个设备和电脑相连接(同过USB),就自动调用安装的一个应用程序?
    能更好的和你们联系吗?
    我的QQ:76584346
      

  7.   

    to  jiangsheng
       是什么意思呢?
       怎么把程序放在可移动介质的自动播放列表 里呢?
      

  8.   

    换个思路,让程序监视是否有多余的磁盘,并读取磁盘的信息判断是否是你的USB,如果是的话就运行你的程序。这样做应该直接有API。
      

  9.   

    可以通过消息处理函数:OnDeviceChange来简单实现(即WM_DEVICECHANGE消息处理函数)
    当系统的设备有变化时,触发该消息,可以在消息处理函数中添加你自定义的方法了撒:如通过HID接口去判断,USB设备的信息,如果是你关心的设备,那么就执行相应的操作就OK了撒
      

  10.   

    http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_basics/shell_basics_extending/autoplay/autoplay2k_cookbook.asp