Что мне нужно
Я ищу инструмент или сценарий, который позволяет мне получить доступ к уровням громкости Windows из командной строки. В идеале это позволило бы мне получить и установить все тома, включая уровни приложений, но я бы согласился только на получение и только на основной уровень. Я не против, если он использует PowerShell
, WMI
, JavaScript
, .Net
, Voodoo или бабочки. Подойдет любое решение, которое просто даст мне число, которое я смогу обработать в диапазоне от 0% до 100%.
Другими словами, подсказки - это черный ящик, который мне нужно заполнить:
C:\> getvol master
50
или даже
C:\> wmic <alias> where "device='master' and name='volume'" get name,value
Name Value
Volume 0xDEADBEEF
Я не против, если мне придется потратить некоторое время, чтобы обернуть это или даже написать что-нибудь сам, если инструменты для этого доступны бесплатно. В последнем случае мне понадобятся несколько указателей / доказательств концепции ядра, но я могу справиться с этим самостоятельно. Также я бы хотел избежать установки новых фреймворков для этой цели (обратите внимание, что ответы на music2myear и iglvzx были даны до того, как я ввел эти требования).
В качестве "платформ" у меня есть в наличии:
- все, что поставляется с Windows 7 Home Premium
- все, что идет с Cygwin
- Perl
- питон
- Рубин
Как правило, решения с открытым исходным кодом очень предпочтительны. Инструменты с закрытым исходным кодом в порядке, если они бесплатны и источнику можно доверять. Коммерческие решения не принимаются.
Что мне не нужно
- Есть несколько похожих вопросов, которые в основном касаются настройки громкости. Больше всего мне нужно получить громкость, а не установить.
- Есть
nircmdc
, который поддерживает настройку громкости, но не получение. - В моем реестре есть ключ [1], значения которого меняются предсказуемо, когда я настраиваю громкость через микшер с графическим интерфейсом, но я предполагаю, что чтение с этого ключа может привести к поломке аппаратных изменений или обновлений системы. Если я не могу полагаться на то, что решение будет достаточно перспективным, я не смогу его использовать.
- Существуют решения
AutoHotKey
иWSH
для настройки громкости в Интернете, но а) они тоже хороши только для настройки и, что еще хуже, б) они используютSendKeys
или автоматическое перемещение мыши для управления графическим интерфейсом. Автоматизация графического интерфейса не вариант.
Канал ##windows
на freenode, как всегда, бесполезен, Google переполнен взломами и недоделанными обходными путями, и я не могу отличить вызов WinAPI от заклинания Wiccan.
Кто-нибудь знает способ?
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode000