Je cherche un outil ou un script qui me permet d'accéder aux niveaux de volume de Windows à partir de la ligne de commande. Idéalement, cela me permettrait d'obtenir et de définir tous les volumes, y compris des niveaux d'application, mais je ne me contenterais que d'obtenir, et seulement le niveau maître. Cela ne me dérange pas s'il utilise PowerShell
, WMI
, JavaScript
, .Net
, Vaudou ou papillons. Toute solution qui va simplement me donner un numéro que je peux approfondir le processus pour s'adapter à une plage de 0% à 100%.
Mettez un autre moyen, les parties rapides sont la boîte noire que j'ai besoin remplie:
C:\> getvol master
50
ou même
C:\> wmic <alias> where "device='master' and name='volume'" get name,value
Name Value
Volume 0xDEADBEEF
Cela ne me dérange pas si je dois passer du temps à envelopper ou même à écrire quelque chose moi-même si les outils à faire sont librement disponibles. Dans ce dernier cas, j'aurais besoin de quelques pointeurs/preuve de concept pour le noyau, mais je peux gérer le cruft seul. J'aimerais aussi éviter d'installer de nouveaux cadres de développement uniquement à cet effet (note que Music2myear's et iglvzx's réponses a été donnée avant J'ai introduit ces exigences).
Comme "plates-formes", j'ai disponible:
En règle générale, des solutions open source sont grandement préférées. Les outils à la source fermée sont corrects tant qu'ils sont gratuits et la source peut être approuvée. Les solutions commerciales ne sont pas passées.
nircmdc
, qui prend en charge le réglage du volume, mais ne pas obtenir.AutoHotKey
et WSH
solutions pour définir le volume sur le Web, mais a), ils ne sont que de bons pour le réglage et, pire, b) qu'ils utilisent SendKeys
ou automatisé Mouvement de la souris pour contrôler l'interface graphique. L'automatisation de l'interface graphique n'est pas une option.Le ##windows
Channel On Freeenode n'est pas inutile, Google déborde de hacks et de travaux de contournement à moitié cuit, et je ne peux pas dire à un appel Winapi d'une incantation Wiccan.
Est-ce que quelqu'un sait-il d'une manière?
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode000
Cette question a été posée et répondu à Stackoverflow: https://stackoverflow.com/questions/4640106/how-to-get-current-volume-fsystem-sound-device-in-windows-7 Englisons
La réponse: https://stackoverflow.com/a/4640225/704977
Vous recherchez l'API Endpointvolume. Cela fait partie des nouvelles API audio libérées dans Windows Vista, et il peut être utilisé pour obtenir ou définir le volume principal.
[.____] ... Il existe une bibliothèque de wrapper gérée complète disponible sur CodeProject: Vista Core Audio API Volume Volume Volume.
Je sais que vous avez dit que vous ne vouliez pas de solution Autohotkey, mais je crois que le Autohotkey API a ce que vous recherchez:
Vous n'avez pas besoin de créer des gis ou d'utiliser des raccourcis avec Autohotkey. Vous pouvez écrire de puissantes utilitaires de ligne de commande en compilant un .ahk
script. Cela étant dit, vous voudrez examiner la commande FILEAPPEND pour travailler avec stdout
.