Мне нравится играть в Fallout 3, который обычно очень глючный, а когда я добавляю моды, становится еще хуже. Излишне говорить, что он часто вылетает. Я могу смириться с вылетами, единственная проблема в том, что когда это происходит, моя звуковая карта застревает в бесконечном циклическом воспроизведении.
Я могу остановить циклический звук, включив и выключив устройство в диспетчере устройств (Отключить/Включить), хотя это раздражает, что приходится постоянно заходить в диспетчер устройств. Поэтому я надеюсь наполовину автоматизировать этот процесс.
Есть ли способ включать и выключать устройство с помощью пакетного скрипта? Таким образом, я мог бы просто разместить его на рабочем столе и запускать, когда моя звуковая карта начинает зацикливаться.
решение1
В Windows 10 вы можете использовать wmic
. Я предпочитаю использовать PNPDeviceID
в предложении where. Сначала вы можете запросить точное значение:
wmic path Win32_PnPEntity where "PNPDeviceID like '%VEN%'"
Как только вы это сделаете, используйте:
wmic path Win32_PNPEntity where "PNPDeviceID='yourPNPDeviceIDname'" call disable
Я нашел очень полезную информацию о wmicздесь
решение2
Благодаря ссылке, предоставленной and31415, мне удалось найти решение с помощью утилиты Device Console (DevCon).
Я скопировал инструкцию о том, как получить инструмент, с сайтаэтот ответ:
DevCon— это инструмент командной строки, который отображает подробную информацию об устройствах и позволяет вам искать и управлять устройствами из командной строки. DevCon включает, отключает, устанавливает, настраивает и удаляет устройства на локальном компьютере и отображает подробную информацию об устройствах на локальных и удаленных компьютерах.
Загрузите соответствующий
.cab
пакет в зависимости от операционной системы:Откройте
.cab
архив и извлеките файл с именемfil[some letters and numbers]
. Он должен быть размером около 80 КБ.- Переименуйте его в
devcon.exe
.
Используя этот инструмент, я смог выяснить, какой Hardware ID был у моей звуковой карты, и использовать его для включения и выключения устройства. Поскольку мне просто нужно переключить устройство, мой пакетный файл выглядит просто так:
devcon.exe disable "PCI\VEN_13F6&DEV_8788&SUBSYS_85221043"
devcon.exe enable "PCI\VEN_13F6&DEV_8788&SUBSYS_85221043"
Эта длинная строка — идентификатор оборудования. Чтобы найти его, я использовал findall
команду DevCon, перенаправив вывод в текстовый файл для удобства поиска.
devcon.exe findall * > C:\output.txt
Выполнив поиск по имени своего устройства, я скопировал нужную мне строку.
Примечание:К сожалению, для запуска пакета по-прежнему требуются права администратора, но это небольшая проблема (и, возможно, я смогу ее решить).решить на более позднем этапе). Но пока меня это устраивает.