Alterar o volume do som do Windows através da linha de comando


19

É possível alterar o volume no Windows XP através da linha de comando?


1
AutoHotkey pode fazer isso, o que você poderia compilar e chamada a partir da linha de comando
Matthew Bloqueio

Precisando de uma ferramenta de terceiros para definir o volume. Estou totalmente com medo.
m3nda 16/07

Respostas:


31

NirCmd é um aplicativo que faz isso e muito mais.

Exemplo de uso:

  • Aumente o volume do sistema em 2000 unidades (em 65535)
    nircmd.exe changesysvolume 2000
  • Diminua o volume do sistema em 5000 unidades (em 65535)
    nircmd.exe changesysvolume -5000
  • Defina o volume para o valor mais alto
    nircmd.exe setsysvolume 65535
  • Mudo
    nircmd.exe mutesysvolume 1
  • Ativar som
    nircmd.exe mutesysvolume 0

2
Esperava que houvesse um método padrão do Windows, mas isso parece muito útil. Aceitará isso se ninguém fornecer um no dia seguinte ou dois. Obrigado Harry.
Underskor 16/09/09

NirCmd parece muito legal e muito útil. Obrigado pela dica.
pavimentar

O NirCmd também é ótimo para silenciar um laptop a cada logon - dessa forma, ele não continuará acidentalmente emitindo o som "ding" no trem (o que eu não noto por causa dos fones de ouvido até um momento embaraçoso em que alguém fica irritado) suficiente para indicá-lo .....)
RomanSt

2
Aparentemente, isso também funciona no Windows 7, como algumas respostas não deletadas agora apontadas anteriormente.
Daniel Beck

Há um script interativo fácil de usar que eu criei para simplificar isso depende nircmd.

8

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.


Obrigado por compartilhar esses códigos de chave! Como meu computador já possui o python instalado, eu pude usá-lo na linha de comando: 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 * 100após o fechamento ]e antes da final ).
ArtOfWarfare

7

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


Isto é brilhante. Muito obrigado por esta ferramenta!
Cssyphus

Obrigado!! No entanto, eu realmente preciso disso para definir o volume do microfone. (Estou usando Java, mas não espero que o JavaSound faça isso.) Ele pode ser adicionado?
27618 Stefan Reich #:

Perfeito, obrigado! Solicitação de recurso para o futuro: capacidade de retornar atual nível de volume como um errorlevel(para que eu possa salvar a configuração atual para depois restaurá-lo)
ashleedawg

1
Claro, eu posso fazer isso - e, de fato, fiz! O programa foi atualizado para a versão 1.2 no site. Talvez seja necessário atualizar o navegador para ver as alterações. Agora existe um novo 'relatório' parm que deve fornecer o que você deseja. A ajuda no site e no aplicativo explica o uso. Feliz Natal!
22418 Rob

(que dizem devolver o nível de volume atual de acordo com a sugestão de ashleedawg)
Rob

4

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 60define 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%)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.