Comment puis-je activer / désactiver le son de PowerShell
Essaie d'écrire une applet de commande PowerShell qui va couper le son au démarrage, à moins d'avoir été coupé, et l'onu-muet à la fin (uniquement si il n'était pas coupé pour commencer).
Ne pouvais pas trouver toutes PoweShell ou objet WMI que je pourrais utiliser. J'ai été jouer avec l'aide de fonctions Win32 comme auxGetVolume ou auxSetVolume, mais ne pouvait pas tout à fait le faire fonctionner (comment lire les valeurs d'un IntPtr?).
Je suis en utilisant V2 CTP2. Toutes les idées sont les bienvenues?
Merci!
source d'informationauteur Traveling Tech Guy
Vous devez vous connecter pour publier un commentaire.
Il ne semble pas être un moyen facile et rapide de régler le volume.. Si vous avez le c++ de l'expérience, vous pourriez faire quelque chose avec ce blogoù Larry Osterman décrit comment appeler la IAudioEndpointVolume interface de la plate-forme de l'api(pour Vista, XP pourrait être plus difficile de ce que j'ai trouvé dans quelques recherches).
V2 vous permet de compiler le code en ligne (via un Add-Type), de sorte que pourrait être une option.
À partir de Vista, vous devez utiliser le Core Audio API pour contrôler le volume du système. C'est une API COM qui ne prend pas en charge l'automatisation et donc nécessite beaucoup de standard à utiliser .NET et PowerShell.
De toute façon le code soufflet permet d'accéder à la
[Audio]::Volume
et[Audio]::Mute
propriétés de PowerShell. Ce aussi travailler sur un ordinateur distant qui pourrait être utile. Il suffit de copier-coller le code dans votre fenêtre PowerShell.L'utilisation de l'échantillon:
Il y a de plus complet .NET des wrappers pour le Core Audio API si vous avez besoin d'un, mais je ne suis pas au courant d'un ensemble de PowerShell amicale des applets de commande.
P. S. Diogo répondre semble intelligent, mais il ne fonctionne pas pour moi.
Utilisez les commandes suivantes sur une ps1 script powershell:
Vous pourriez peau le chat d'une autre manière par tout simplement la gestion du Service Audio Windows. Stop pour couper le son, de le démarrer pour activer le son.
Si vous pouvez le faire en C#vous pouvez le faire en PowerShell.
Alexandre ajustement réponse à ma situation, mais son exemple ne fonctionne pas en raison d'erreurs de compilation concernant l'espace de noms 'var'. Il semble que les nouvelles/différentes versions de .net peut provoquer l'exemple à ne pas travailler. Si vous avez trouvé que vous avez reçu des erreurs de compilation, c'est une version alternative d'essayer, pour ces cas:
Utilisation est la même:
Je n'ai pas trouver comment le faire en PowerShell, mais il y a une ligne de commande de l'utilitaire appelé NirCmd qui fera l'affaire en exécutant cette commande:
C:\utils\nircmd.exe mutesysvolume 2
NirCmd est disponible gratuitement ici:
http://www.nirsoft.net/utils/nircmd.html
Solution en vbscript:
Les clés de réduire le volume par 2 à chaque fois.
Je sais que ce n'est pas de PowerShell, mais la combinaison des réponses de Michael et Diogo donne une ligne de VBScript solution:
Claque cette
mute.vbs
et il vous suffit de double-cliquer pour passer muetSet-ExecutionPolicy
comme vous le feriez avec PowerShellDécouvrez ma réponse à Changement niveau audio à partir de powershell?