Changement de périphérique audio par défaut avec un fichier de commandes

22

J'essaie d'écrire un fichier batch sur Windows 10 qui me permet de basculer entre mon casque et mes haut-parleurs en tant que périphérique audio par défaut lorsque je l'exécute. Je ne veux utiliser aucun logiciel tiers.

J'ai essayé de chercher, mais je n'ai trouvé que d'anciens scripts qui ne semblent pas fonctionner et font également référence à un HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\chemin qui ne semble plus exister. Je ne trouve aucune information sur le registre Windows 10 à ce sujet, aussi je ne suis pas à l'aise de trop tripoter le registre si je ne suis pas sûr de ce que je fais.

zerothehero
la source
1
Si vous renoncez à ne pas trop vouloir utiliser la 3e partie, j'utilise audioswit.ch/er [oui c'est la vraie URL] depuis environ 5 ans. Touche de raccourci commutable également. [aucune affiliation.]
Tetsujin

Réponses:

33

J'apprécie que vous ne souhaitiez pas utiliser de logiciel tiers, mais en option si cela ne vous dérange pas d'utiliser un exe de ~ 100 Ko, vous pouvez utiliser Nircmd avec les commandes:

nircmd setdefaultsounddevice "Speakers" 1

ou

nircmd setdefaultsounddevice "Headphones" 1

Vous devez vous assurer que vous utilisez le nom exact de vos périphériques audio comme indiqué sous Playback Devices(cliquez avec le bouton droit sur le contrôle du son dans la barre d'état système). Il peut être plus facile de les renommer sous des Propertiesnoms plus simples, surtout si les noms s'affrontent de quelque façon que ce soit.

La 1fin de la commande signifie "Périphérique par défaut". L'utilisation 2signifie «Dispositif de communication par défaut».


Si vous ne voulez vraiment pas utiliser un outil tiers, voici une différence d'une clé de registre qui semble changer lorsque je change mon périphérique audio par défaut, cela peut vous être utile, mais je ne sais pas exactement quoi ça fait. Ce n'est pas aussi simple qu'un 1 ou un 0 pour indiquer s'il s'agit d'un défaut, semble-t-il.

entrez la description de l'image ici

Jonno
la source
+1 de moi. C'est la meilleure façon de procéder. Si vous ne voulez vraiment pas placer nircmd quelque part sur votre disque dur (croyez-moi, vous le voulez, c'est génial), l'alternative serait de le changer deux fois et de faire une exportation reg de la clé mentionnée ici et d'exécuter le droit .reg fichier. Je ne sais pas si cela fonctionnera, mais ce serait mon approche alternative.
LPChip
Merci pour la réponse, je suis tombé sur nircmd moi-même, mais j'étais vraiment curieux de trouver un moyen de le faire sans aucun logiciel tiers. Si aucune autre méthode ne sort, je vais envisager de l'utiliser.
zerothehero
+1. J'ai essayé l'approche du registre, mais ce n'est pas aussi facile que ce qui a été suggéré (au moins avec W10). Utilisation de NirCmd également maintenant :)
MBaas
6

Depuis Windows 8 (ou peut-être plus tôt?), La configuration audio du PC est stockée dans HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render. Sous Renderil y a des clés nommées GUID, chacune contenant DeviceStateune valeur dword à la racine. Mais comment est-il codé?

Voir les constantes DEVICE_STATE_XXX sur MSDN :

  • 1 Actif
  • 2 désactivé
  • 4 Non présent
  • 8 Débranché

Donc, le script powershell / bat pour basculer entre 1 et 2 devrait faire l'affaire.

EDIT: Pour obtenir un nom d'appareil lisible par l'homme, lisez {b3f8fa53-0004-438e-9003-51a46e139bfc},6sous la sous- Propertiesclé

Aziz Kabyshev
la source
Salut Aziz, j'ai essayé cela sous W10, mais cela n'a fonctionné qu'une seule fois - et quand j'ai essayé de passer à l'appareil précédent par lot, il a soudainement disparu de la liste que vous obtenez en cliquant sur l'icône de la barre d'état pour l'audio. J'ai également constaté que je devais d'abord obtenir les autorisations pour cette clé de registre (voir groovypost.com/howto/… )
MBaas