1

在 Windows XP 中,当连接了特定类型的 USB 设备(它当前作为存储设备连接 - 即它显示为驱动器)时,执行特定应用程序的最佳方式是什么。

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

编辑:轮询所有连接的设备是不够的 - windows 在那个阶段已经完成了它的弹出窗口。问题是在没有额外弹出窗口的情况下启动应用程序,然后应用程序将需要将该设备用作普通存储驱动器。

4

4 回答 4

3

快速搜索发现此站点,请参阅“3.3 设备更改侦听器”部分

于 2008-10-02T09:48:34.273 回答
2

您可以让后台应用程序对该特定 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 处理程序随后将启动所需的应用程序。

于 2008-10-02T10:48:03.007 回答
2

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

如果你确实想走这条路,看看这个网站,有很多很好的信息和一个你可以玩的 autorun.inf 生成器。

于 2008-10-02T09:40:14.667 回答
1

一氧化碳有正确的想法。我自己使用这种技术来管理我的音乐收藏。我的主要 PC 是一台笔记本电脑,但我的音乐收藏变得足够大,我不得不将它移到外部驱动器上。所以在外部驱动器上我放了以下AUTORUN.INF

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

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

于 2008-10-02T14:16:13.617 回答