Как выполнить приложение в XP, когда подключено USB-устройство определенного типа - PullRequest
1 голос
/ 02 октября 2008

В Windows XP, как лучше всего выполнять определенное приложение, когда подключено USB-устройство определенного типа (в настоящее время оно подключается как устройство хранения данных, т. Е. Отображается как диск).

Решение, которое я ищу, должно запускать приложение с самого первого подключения устройства или предлагать приложение в качестве выбора, в зависимости от того, что легче сделать, устройство должно оставаться подключенным как устройство хранения.

РЕДАКТИРОВАТЬ: Опрос всех подключенных устройств не является адекватным - окна уже сделали свои всплывающие окна на этом этапе. Проблема заключается в запуске приложения без дополнительных всплывающих окон, после чего приложению необходимо использовать устройство в качестве обычного накопителя.

Ответы [ 4 ]

3 голосов
/ 02 октября 2008

Обнаружен быстрый поиск этого сайта , см. Раздел "3.3 Слушатель смены устройства"

2 голосов
/ 02 октября 2008

У вас может быть фоновое приложение, реагирующее на событие подключения этого конкретного 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 запустит нужное приложение.

2 голосов
/ 02 октября 2008

Вы также можете включить автозапуск для USB-накопителей и настроить файл autorun.inf на USB-накопителе, хотя я советую не использовать этот метод, поскольку существует несколько вирусов, использующих это. Есть причина, по которой он выключен по умолчанию.

Если вы действительно хотите пойти по этому пути, посмотрите на этот сайт , там много полезной информации и генератор autorun.inf, с которым вы можете играть.

1 голос
/ 02 октября 2008

Окись имеет правильную идею. Я сам использую эту технику в управлении своей музыкальной коллекцией. Мой основной ПК - ноутбук, но моя музыкальная коллекция стала достаточно большой, и мне пришлось перенести ее на внешний диск. Поэтому на внешний диск я положил следующее AUTORUN.INF :

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

Как вы видите, он предлагает запустить iTunes из C: когда этот диск подключен. По какой-то причине метка и значок не отображаются в окне автозапуска, но LABEL появляется, когда этот диск просматривается в «Моем компьютере». То, что вы видите в диалоговом окне автозапуска, которое появляется в XP, это выбор по умолчанию «Запустить программу / используя программу, предоставленную на устройстве». Один щелчок - и все готово.

...