Ciò che di cui ho bisogno
Sto cercando uno strumento o uno script che mi consenta di accedere ai livelli di volume di Windows dalla riga di comando. Idealmente mi permetterebbe di ottenere e impostare tutti i volumi inclusi i livelli dell'applicazione, ma mi accontenterei di ottenere solo e solo il livello principale. Non mi importa se utilizza PowerShell
, WMI
, JavaScript
, .Net
, Voodoo, o farfalle. Qualsiasi soluzione che mi fornirà un numero che posso elaborare ulteriormente per adattarsi a un intervallo compreso tra 0% e 100% lo farà.
Detto in altro modo, le parti rapide sono la scatola nera che devo riempire:
C:\> getvol master
50
o anche
C:\> wmic <alias> where "device='master' and name='volume'" get name,value
Name Value
Volume 0xDEADBEEF
Non mi importa se devo passare un po 'di tempo per avvolgerlo o anche scrivere qualcosa da solo se gli strumenti per farlo sono disponibili gratuitamente. In quest'ultimo caso, avrei bisogno di alcuni puntatori / prove di concetto per il core, ma posso gestire la cruft da solo. Inoltre, vorrei evitare di installare nuovi framework di sviluppo solo per questo scopo (si noti che entrambe le risposte di music2myear e iglvzx sono state fornite prima di introdurre questi requisiti).
Come "piattaforme", ho disponibile:
- tutto ciò che viene fornito con Windows 7 Home Premium
- tutto ciò che viene fornito con Cygwin
- Perl
- Pitone
- Rubino
In generale, le soluzioni open source sono molto preferite. Gli strumenti a sorgente chiuso sono ok fintanto che sono freeware e la fonte può essere attendibile. Le soluzioni commerciali sono no-go.
Ciò di cui non ho bisogno
- Ci sono alcune domande simili che riguardano principalmente l'impostazione del volume. Soprattutto, ho bisogno di ottenere il volume, non impostato.
- C'è
nircmdc
, che supporta l'impostazione del volume, ma non ottenere. - Esiste una chiave [1] nel mio registro che ha valori che cambiano in modo prevedibile quando aggiusto il volume tramite il mixer della GUI, ma immagino che leggere da quella chiave sia soggetto a rotture su modifiche hardware o aggiornamenti di sistema. A meno che non possa fare affidamento sul fatto che la soluzione sia ragionevolmente a prova di futuro, non posso usarla.
- Esistono
AutoHotKey
eWSH
soluzioni per impostare il volume sul Web, ma a) anche loro sono buoni solo per l'impostazione e, peggio ancora, b) usanoSendKeys
o il movimento automatico del mouse per controllare la GUI. L'automazione della GUI non è un'opzione.
Il ##windows
canale su freenode è inutile come sempre, Google trabocca di hack e soluzioni alternative e non riesco a dire una chiamata WinAPI da un incantesimo di Wiccan.
Qualcuno sa di un modo?
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode000