O que eu preciso
Estou procurando uma ferramenta ou um script que permita acessar os níveis de volume do Windows na linha de comando. Idealmente, permitiria obter e definir todos os volumes, incluindo níveis de aplicativo, mas eu aceitaria apenas obter e apenas o nível mestre. Eu não me importo se ele usa PowerShell
, WMI
, JavaScript
, .Net
, voodoo, ou borboletas. Qualquer solução que me forneça apenas um número que eu possa processar para ajustar um intervalo de 0% a 100% serve.
Em outras palavras, as partes do prompt são a caixa preta que preciso preencher:
C:\> getvol master
50
ou mesmo
C:\> wmic <alias> where "device='master' and name='volume'" get name,value
Name Value
Volume 0xDEADBEEF
Não me importo se tiver que gastar algum tempo para embrulhá-lo ou mesmo escrever alguma coisa, se as ferramentas para fazê-lo estiverem disponíveis gratuitamente. No último caso, eu precisaria de alguns indicadores / prova de conceito para o núcleo, mas posso gerenciar o cruft sozinho. Também gostaria de evitar a instalação de novas estruturas de desenvolvimento apenas para esse fim (observe que as respostas do music2myear e do iglvzx foram fornecidas antes da introdução desses requisitos).
Como "plataformas", tenho disponível:
- tudo o que acompanha o Windows 7 Home Premium
- tudo o que acompanha o Cygwin
- Perl
- Pitão
- Rubi
Geralmente, as soluções de código aberto são muito preferidas. As ferramentas de código fechado são válidas desde que sejam freeware e a fonte possa ser confiável. Soluções comerciais são proibidas.
Do que eu não preciso
- Existem algumas perguntas semelhantes que tratam principalmente da definição do volume. Acima de tudo, preciso obter o volume, não definido.
- Existe
nircmdc
, que suporta a configuração de volume, mas não a obtenção. - Existe uma chave [1] no meu registro que possui valores que mudam previsivelmente quando ajusto o volume através do misturador da GUI, mas acho que a leitura dessa chave é propensa a falhas nas alterações de hardware ou nas atualizações do sistema. A menos que eu possa confiar que a solução é razoavelmente à prova de futuro, não posso usá-la.
- Existem
AutoHotKey
eWSH
soluções para configurar o volume na Web, mas a) elas também são boas apenas para configurar e, pior ainda, b) usamSendKeys
ou automatizam o movimento do mouse para controlar a GUI. Automatizar a GUI não é uma opção.
O ##windows
canal no freenode é inútil como sempre, o Google transborda de hacks e soluções alternativas incompletas, e não consigo distinguir uma chamada WinAPI de um encantamento Wiccan.
Alguém sabe de uma maneira?
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode000