É possível alterar o volume no Windows XP através da linha de comando?
É possível alterar o volume no Windows XP através da linha de comando?
Respostas:
NirCmd é um aplicativo que faz isso e muito mais.
Exemplo de uso:
nircmd.exe changesysvolume 2000
nircmd.exe changesysvolume -5000
nircmd.exe setsysvolume 65535
nircmd.exe mutesysvolume 1
nircmd.exe mutesysvolume 0
nircmd
.
Crie os arquivos JavaScript:
echo var oShell = new ActiveXObject("WScript.Shell"); >> volup.js<BR>
echo oShell.SendKeys(String.fromCharCode(0xAF)); >> volup.js
echo var oShell = new ActiveXObject("WScript.Shell"); >> voldown.js<BR>
echo oShell.SendKeys(String.fromCharCode(0xAE)); >> voldown.js
echo var oShell = new ActiveXObject("WScript.Shell"); >> togglemute.js<BR>
echo oShell.SendKeys(String.fromCharCode(0xAD)); >> togglemute.js
Mostre o controle de volume para poder ver o que está fazendo:
sndvol
(or maybe sndvol32)
Mude o volume:
cscript voldown.js
Nota: Essa abordagem funcionou de maneira confiável em máquinas nas quais tentei usá-la. Resposta de Helen à pergunta StackOverflow de Sibo Lin sobre issoindica que o muting não é confiável, mas a alteração de volume pode não ser tão confiável. Suspeito que o nível de confiabilidade possa ser diferente em máquinas diferentes. Essa abordagem está usando a tecnologia de imitar um pressionamento de tecla e, especificamente, uma tecla de controle de volume em um teclado de mídia aprimorado. Na época em que o Windows começou a dar suporte a isso, esse teclado era basicamente um recurso frívolo pouco usado que oferecia funcionalidades que antes estavam disponíveis apenas com drivers personalizados. Não me surpreenderia se esse código fosse menos polido e menos provável de funcionar em alguns dos vários hardwares (talvez mais antigos) existentes no mercado. Tudo isso dito, eu não tive problemas com isso sozinho.
Créditos:
Uma ressalva: Esta pergunta foi marcada com o Windows XP. Eu apenas tentei isso no Windows 10. Eu sei que usei isso no Windows 7 (pelo menos o suficiente para testá-lo). Quando comecei a ver o suporte interno da Microsoft para esses teclados aprimorados na época do Windows ME, acho que provavelmente também funcionará bem no WinXP. Não me lembro se eu realmente testei isso com esse sistema operacional. Ainda assim, se essa abordagem não funcionar bem, não espero que cause efeitos colaterais problemáticos.
pip install SendKeys
(pacote Python puro para emular pressionamentos de tecla), seguido por python -c "from SendKeys import playkeys; playkeys([(0xAE, True), (0xAE, False)])"
, que emula uma única pressão e liberação da tecla de volume. Para emular 100 impressoras distintas (por exemplo), você pode inserir * 100
após o fechamento ]
e antes da final )
.
Depois de ler essas postagens e procurar alternativas, decidi escrever meu próprio utilitário de linha de comando, chamado SetVol, para definir o volume. Funciona um pouco mais simples do que o descrito em algumas das outras postagens nesta página. Aqui estão alguns exemplos que você digitaria no prompt de comando:
setvol 75
setvol -10
setvol +12
setvol mute
setvol unmute
Existem outras opções também. Eu o liberei como freeware, e você pode visitar www.rlatour.com/setvol para obter mais informações e baixar uma cópia.
Desfrutar
errorlevel
(para que eu possa salvar a configuração atual para depois restaurá-lo)
Devido e simplificando ainda mais o Nircmd
@echo off
rem 65536 is 100%
rem device where zero is the default device
rem left and right
rem supports whole numbers only therefore throws "missing operator" error when specifying 655.36
set /a volume=%1 * 655
nircmd setvolume 0 %volume% %volume%
salve-o como um arquivo .bat e execute-o passando um parâmetro
por exemplo: sound 60
define o volume do som em 60%
certifique-se de colocar o arquivo bat ao lado do nircmd ou em %windir%
(ou defina sua pasta em %path%
)