Eu gosto de jogar Fallout 3, que normalmente apresenta muitos bugs, ainda mais depois de adicionar alguns mods. Escusado será dizer que ele trava muito. Eu posso lidar com as falhas, o único problema é quando isso acontece, minha placa de som fica presa em uma reprodução estilo loop infinito.
Posso interromper o loop de áudio ligando e desligando o dispositivo no Gerenciador de Dispositivos (Desativar/Ativar), embora seja irritante ter que entrar no Gerenciador de Dispositivos o tempo todo. Então, espero semiautomatizar o processo.
Existe uma maneira de ativar e desativar um dispositivo usando um script em lote? Dessa forma, eu poderia simplesmente colocá-lo na área de trabalho e executá-lo quando minha placa de som começar a entrar em loop.
Responder1
No Windows 10 você pode usar wmic
. Eu prefiro usar PNPDeviceID
a cláusula in where. Você pode primeiro consultar o valor exato:
wmic path Win32_PnPEntity where "PNPDeviceID like '%VEN%'"
Depois de obtê-lo, use:
wmic path Win32_PNPEntity where "PNPDeviceID='yourPNPDeviceIDname'" call disable
Encontrei algumas informações muito úteis sobre o wmicaqui
Responder2
Graças ao link fornecido por and31415, consegui uma solução para McGyver, usando o utilitário Device Console (DevCon).
Copiei as instruções sobre como obter a ferramenta emesta resposta:
DevConé uma ferramenta de linha de comando que exibe informações detalhadas sobre dispositivos e permite pesquisar e manipular dispositivos na linha de comando. O DevCon habilita, desabilita, instala, configura e remove dispositivos no computador local e exibe informações detalhadas sobre dispositivos em computadores locais e remotos.
Baixe o
.cab
pacote apropriado dependendo do sistema operacional:Abra o
.cab
arquivo e extraia o arquivo chamadofil[some letters and numbers]
. Deve ter cerca de 80 KB.- Renomeie-o para
devcon.exe
.
Usando esta ferramenta, consegui descobrir qual era o ID do hardware da minha placa de som e usá-lo para ativar e desativar o dispositivo. Visto que preciso simplesmente alternar o dispositivo, meu arquivo em lote se parece com isto:
devcon.exe disable "PCI\VEN_13F6&DEV_8788&SUBSYS_85221043"
devcon.exe enable "PCI\VEN_13F6&DEV_8788&SUBSYS_85221043"
Essa string mais longa é o ID do dispositivo de hardware. Para descobrir isso, usei findall
o comando do DevCon, canalizando a saída para um arquivo de texto para facilitar a pesquisa.
devcon.exe findall * > C:\output.txt
Procurando pelo nome do meu dispositivo, copiei a string que precisava.
Observação:Infelizmente, o lote ainda requer privilégios de administrador para ser executado, mas isso é um pequeno problema (e que talvez eu consiga resolver).resolver numa fase posterior). Mas, por enquanto, isso funciona para mim.