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
AutoHotKeyeWSHsoluções para configurar o volume na Web, mas a) elas também são boas apenas para configurar e, pior ainda, b) usamSendKeysou automatizam o movimento do mouse para controlar a GUI. Automatizar a GUI não é uma opção.
O ##windowscanal 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