Можно ли активировать программу, включив / подключив конкретное USB-устройство?

289
Herb

Можно ли отреагировать на подключение (или включение) определенного USB-устройства к USB-концентратору ПК, чтобы автоматически выполнить скрипт Powershell (или запустить исполняемый или пакетный скрипт)?

В частности, у меня есть стационарный считыватель штрих-кодов, обеспечивающий ввод программы, ожидающей считывания штрих-кодов. Считыватель штрих-кодов используется не часто (он отслеживает товарные запасы), поэтому большую часть времени не работает.

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

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

В случае, если это актуально, согласно вкладке драйвера диспетчера устройств, рассматриваемое устройство идентифицируется как HID \ VID_0C2E & PID_0200 \ 7 & 3445e1e3 & 0 & 0000 . Его нет при выключении.

1
Вы спрашиваете, возможно ли автоматически запускать приложение при подключении USB-накопителя? Ramhound 6 лет назад 0
Я думаю, что Task Scheduler vs Eventlog может сделать это, но я не уверен, как он реагирует и может ли он отфильтровывать определенное устройство. LPChip 6 лет назад 0
@ Ramhound, нет, не устройство хранения. Как я уже сказал, сканер штрих-кода. Что для практических целей можно рассматривать как клавиатуру с несколькими символами и клавишу Enter. Herb 6 лет назад 0
@LPChip, в диалоговом окне «Создать задачу», «Триггер», «Новый» в планировщике задач единственным разумным триггером является «О событии», верно? Затем `userdefined`, так как нет подходящего предопределенного триггера. Есть несколько источников с именем `USB -...`, предлагающих использовать один из них. «Диспетчер устройств» перечисляет в общей сложности 6 «USB Input Devices», который переходит на 7 при включении считывателя штрих-кода. Осматривая их местоположение, я могу найти своего читателя по адресу `Port_ # 0001.Hub_ # 0004`. И теперь я потерян. Что я могу сделать с этой информацией? Herb 6 лет назад 0
Сначала вам нужно найти в журнале событий все, что касается читателя, а затем посмотреть, сможете ли вы с этим поработать. LPChip 6 лет назад 0
@LPChip, спасибо за ваши предложения. Самым многообещающим узлом EventLog был бы Microsoft / Windows / DriverFramework-UserMode / Operational, верно? Ну, это совершенно пусто. Herb 6 лет назад 0
Лучшее, что вы можете сделать, это загрузить программу под названием: NirSoft FullEventLog, которая покажет вам весь журнал событий в одном обзоре. Затем подключите устройство, сортируйте по времени / дате и найдите событие таким образом. LPChip 6 лет назад 0
@ LPChip, я сделал, спасибо. При включении / выключении считывателя штрих-кода отображаются только события из канала: Microsoft-Windows-Audio / PlaybackManager (Поставщик: Microsoft-Windows-Audio). То же самое верно при включении / выключении других устройств без памяти, подключенных к тому же концентратору USB. Я уверен, что они отражают системные звуки «USB-устройство подключено» и «отключено», которые действительно слышны. Herb 6 лет назад 0
Да, вполне вероятно. Это означает, что вы не можете автоматизировать вещи, используя встроенные функции Windows. LPChip 6 лет назад 0
@LPChip, спасибо за ваш совет. Еще одна вещь, прежде чем я расскажу о программировании приложения, опрашивающего аппаратное обеспечение системы: при включении питания новая HID-клавиатура появляется в DeviceManager> PCName> Keyboards (она идентифицируется как HID \ VID_0C2E & PID_0200 \ 7 & 3445e1e3 & 0 & 0000). Этот факт не может быть использован? Herb 6 лет назад 0
Что вы имеете в виду под эксплуатируемыми? Это идентификатор оборудования. Фактически, поиск этой строки даст вам ссылку на это конкретное оборудование. LPChip 6 лет назад 0

0 ответов на вопрос