Ce dont j'ai besoin
Je recherche 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 les niveaux d'application, mais je me contenterais d'obtenir uniquement et uniquement le niveau principal. Je ne me dérange pas si elle utilise PowerShell
, WMI
, JavaScript
, .Net
, vaudou, ou papillons. Toute solution qui me donnera simplement un nombre que je peux traiter plus en détail pour s'adapter à une plage de 0% à 100% fera l'affaire.
Autrement dit, les parties d'invite sont la boîte noire que j'ai besoin de remplir:
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 un peu de temps pour l'envelopper ou même écrire quelque chose moi-même si les outils pour le faire sont disponibles gratuitement. Dans ce dernier cas, j'aurais besoin de quelques pointeurs / preuves de concept pour le noyau, mais je peux gérer la cruauté par moi-même. Je voudrais également éviter d'installer de nouveaux cadres de développement juste à cette fin (notez que les réponses de music2myear et d' iglvzx ont été données avant que j'introduise ces exigences).
En tant que "plateformes", je dispose:
- tout ce qui vient avec Windows 7 Home Premium
- tout ce qui vient avec Cygwin
- Perl
- Python
- Rubis
Généralement, les solutions open source sont largement préférées. Les outils à source fermée sont corrects tant qu'ils sont gratuits et que la source peut être fiable. Les solutions commerciales sont interdites.
Ce dont je n'ai pas besoin
- Il y a quelques questions similaires qui concernent principalement le réglage du volume. Surtout, j'ai besoin d' obtenir le volume, pas réglé.
- Il y en a
nircmdc
, qui prend en charge le réglage du volume, mais pas le son. - Il y a une clé [1] dans mon registre qui a des valeurs qui changent de façon prévisible lorsque j'ajuste le volume via le mélangeur GUI, mais je suppose que la lecture de cette clé est sujette à une rupture lors de changements matériels ou de mises à niveau du système. À moins que je puisse compter sur une solution raisonnablement évolutive, je ne peux pas l'utiliser.
- Il existe
AutoHotKey
et desWSH
solutions pour régler le volume sur le Web, mais a) elles aussi ne sont bonnes que pour le réglage et, pire, b) elles utilisentSendKeys
ou un mouvement automatisé de la souris pour contrôler l'interface graphique. L'automatisation de l'interface graphique n'est pas une option.
Le ##windows
canal sur freenode n'est toujours pas utile, Google déborde de hacks et de solutions de contournement à moitié cuites, et je ne peux pas distinguer un appel WinAPI d'une incantation Wiccan.
Quelqu'un connaît-il un moyen?
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode000
Réponses:
Cette question a été posée et répondue sur StackOverflow: /programming/4640106/how-to-get-current-volume-of-system-sound-device-in-windows-7
La réponse: /programming//a/4640225/704977
la source
Je sais que vous avez dit que vous ne vouliez pas d'une solution AutoHotkey, mais je crois que l' API AutoHotkey a ce que vous recherchez:
Vous n'avez pas besoin de créer d'interfaces graphiques ou d'utiliser des raccourcis clavier avec AutoHotkey. Vous pouvez écrire de puissants utilitaires de ligne de commande en compilant un
.ahk
script. Cela étant dit, vous voudrez regarder la commande FileAppend pour travailler avecstdout
.la source
Le volume principal est stocké dans l'emplacement du registre:
Par exemple, ce fichier REG définit le volume principal à 100%.
Le nom de la clé peut différer. Vous devez redémarrer pour que les modifications prennent effet.
Vous ne pourrez peut-être pas modifier ou ouvrir la clé
Properties
ou . Bien que vous disposiez des autorisations d'accès nécessaires, vous pouvez recevoir une erreur comme celle-ci:{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}
regedit
En effet, le nom de la clé est trop long. Vous devrez renommer temporairement le nom de la clé longue en un caractère, puis le renommer.
la source