如何在特定类型的USB设备连接时在XP中执行应用程序

问题描述:

在Windows XP中,连接特定类型的USB设备时执行特定应用程序的最佳方式是什么(它当前附加为存储设备 - 即它表现为一个驱动器)。如何在特定类型的USB设备连接时在XP中执行应用程序

我正在寻找的解决方案必须从第一次连接设备或提供应用程序作为选择时执行应用程序,无论哪一个更容易实现,设备都必须作为存储设备连接。

编辑:轮询所有连接的设备是不够的 - Windows已经在该阶段完成弹出窗口。问题是启动应用程序时没有额外的弹出窗口,应用程序将需要使用该设备作为普通的存储驱动器。

您也可以打开USB驱动器的自动播放功能,并在USB驱动器上设置autorun.inf文件,但我建议不要使用这种方法,因为有多种病毒利用这种方法。有一个原因,它默认关闭。

如果你确实想沿着这条路走下去,have a look at this website,有很多很好的信息和一个你可以玩的autorun.inf生成器。

快速搜索发现this site,请参见“3.3设备变化监听”

你可以有一个后台应用程序反应,这种特殊的USB设备的连接事件,这将开始实际应用。

ManagementEventWatcher Watcher; 
WqlEventQuery Query = new WqlEventQuery(); 
Query.EventClassName = "__InstanceCreationEvent"; 
Query.Condition = "TargetInstance ISA 'Win32_USBControllerDevice'"; 
Query.WithinInterval = new TimeSpan(0, 0, 2); 

Watcher = new ManagementEventWatcher(Query); 
Watcher.EventArrived += new EventArrivedEventHandler(OnUsbConnected); 

OnUsbConnected处理程序将启动所需的应用程序。

一氧化碳有正确的想法。我自己使用这种技术来管理我的音乐收藏。我的主要个人电脑是笔记本电脑,但我的音乐收藏足够大,我不得不将其移动到外部驱动器。因此,外部驱动器,我把下列AUTORUN.INF

[autorun] 
open=c:\progra~1\itunes\itunes.exe 
label=Open iTunes 
icon=c:\progra~1\itunes\itunes.exe,0 

正如你可以看到它提供了从C启动iTunes:当该驱动器连接。出于某种原因,标签和图标不会被自动播放窗口拾取,但当在“我的电脑”中查看此驱动器时,LABEL会显示。在XP中出现的AutoPlay对话框中显示的内容是默认选择“运行程序/使用设备上提供的程序”。点击一下,你就开始跑步了。

+0

不,你说得对,它是inf,我修复了我的帖子。很好的接收。 – 2008-10-03 00:24:52