Вопрос или проблема
У меня есть USB-клавиатура (ASUS ROG Strix Scope RX) с LED-подсветкой, подключенная к моему ноутбуку.
Мне нужно, чтобы её LED-подсветка отключалась при отключении моего внешнего монитора (единственного, который я использую, так как крышка моего ноутбука закрыта), поэтому я использую OpenRGB для этой цели. Светодиоды отключаются, как и ожидалось, но затем, похоже, что OpenRGB имеет полный и исключительный контроль над LED, я больше не могу управлять ими с помощью Fn + стрелок. Единственное решение — это вручную отключить и снова подключить клавиатуру.
Основной вопрос: Как мне автоматически полностью отключить, а затем снова подключить клавиатуру, как будто я выдернул её USB-кабель из ноутбука и снова вставил, используя скрипты или команды?
Я пробовал использовать USBDeview.exe или devcon.exe, но безрезультатно.
Ниже приведён скрипт, который я пытался создать, чтобы использовать devcon.exe для удаления и последующего сканирования устройств, но он работает не так, как нужно, на самом деле классический звук Windows об устройстве USB, подключенном, воспроизводится, но, похоже, этого недостаточно, и это не совсем то, что нужно для фактического отключения и повторного подключения устройства.
script.bat
@echo off
:: Остановка службы HID перед отключением
powershell -Command "Stop-Service -Name 'hidserv'"
:: Удаление устройства клавиатуры (HID устройство)
devcon remove "HID\VID_0B05&PID_1951&MI_02&COL04"
timeout 2
:: Отключение USB Root Hub 3.0, чтобы отключить все устройства, подключенные к нему
devcon disable "USB\ROOT_HUB30"
timeout 2
:: Включение USB Root Hub 3.0, чтобы повторно подключить устройства
devcon enable "USB\ROOT_HUB30"
timeout 2
:: Сканирование устройств, чтобы обеспечить правильное обнаружение устройства
devcon rescan
timeout 2
:: Перезапуск службы HID для сброса драйвера клавиатуры
powershell -Command "Start-Service -Name 'hidserv'"
:: Снова сканирование для обнаружения любых устройств
devcon rescan
.
Ответ или решение
Как полностью отключить и заново подключить USB-клавиатуру на Windows
Вам требуется отключить и вновь подключить USB-клавиатуру, чтобы сбросить управление светодиодами, и вы уже попробовали различные скрипты, но без успеха. Мы рассмотрим детальный подход с использованием командной строки Windows для достижения необходимого результата.
Шаг 1: Подготовка необходимых инструментов
Для реализации этой задачи мы будем использовать утилиты, такие как devcon.exe
и PowerShell
. Если devcon
еще не установлен, вы можете скачать его из пакета Windows Driver Kit (WDK). После установки убедитесь, что devcon.exe
доступен из командной строки.
Убедитесь, что у вас есть права администратора, так как указанные команды требуют повышенных привилегий.
Шаг 2: Определение идентификатора устройства
Перед тем как продолжить, вам необходимо определить идентификатор вашего устройства. Это можно сделать с помощью следующих шагов:
- Откройте «Диспетчер устройств» в Windows (Device Manager).
- Найдите вашу клавиатуру.
- Щелкните правой кнопкой мыши на устройстве и выберите «Свойства».
- Перейдите на вкладку «Сведения» и выберите «ИД оборудования» из выпадающего списка. Скопируйте идентификатор устройства, который будет выглядеть как
HID\VID_xxxx&PID_yyyy
.
Примечание: Если ваш идентификатор устройства имеет другой вид, используйте его для замены в следующих командах.
Шаг 3: Создание скрипта
Теперь создадим батник (script.bat
) для автоматизации процесса отключения и подключения клавиатуры.
@echo off
:: Остановка службы HID перед отключением
powershell -Command "Stop-Service -Name 'hidserv'"
:: Удаление клавиатуры (HID устройство)
devcon remove "HID\VID_xxxx&PID_yyyy"
timeout 2
:: Отключение USB Root Hub для отключения всех подключенных устройств
devcon disable "USB\ROOT_HUB30"
timeout 2
:: Включение USB Root Hub для переподключения устройств
devcon enable "USB\ROOT_HUB30"
timeout 2
:: Повторный поиск устройств для обеспечения правильного обнаружения
devcon rescan
timeout 2
:: Запуск службы HID для сброса драйвера клавиатуры
powershell -Command "Start-Service -Name 'hidserv'"
:: Повторный поиск устройств
devcon rescan
Замена идентификатора: Обязательно замените HID\VID_xxxx&PID_yyyy
на ваш актуальный идентификатор устройства.
Шаг 4: Запуск скрипта
После создания и сохранения батника выполните его от имени администратора. Это позволит вам отключить и заново подключить клавиатуру.
Примечания
- Проверка служб: Убедитесь, что службы
hidserv
работают корректно после выполнения скрипта; в противном случае клавиатура может не работать должным образом. - Отладка: Если клавиатура не подключается автоматически, проверьте журнал событий Windows на наличие ошибок или конфликты устройств.
- Cron или Task Scheduler: Чтобы автоматизировать эту задачу, вы можете создать задачу в Планировщике заданий Windows для запуска вашего скрипта при определенных условиях (например, при выключении монитора).
Заключение
Таким образом, использование командной строки для отключения и подключения устройства — это эффективный метод управления USB-клавиатурой. Следуя приведенным инструкциям, вы сможете как разрабатывать, так и отлаживать необходимый вам процесс с минимальными затруднениями. Если возникнут сложности, рекомендуется обратиться к более опытному системному администратору для дополнительной помощи.