Cambiar el dispositivo de audio predeterminado con un archivo por lotes

22

Estoy tratando de escribir un archivo por lotes en Windows 10 que me permite cambiar entre mis auriculares y mis altavoces como dispositivo de audio predeterminado cuando lo ejecuto. No quiero usar ningún software de terceros.

Intenté buscar pero solo encontré scripts antiguos que no parecen funcionar y también se refieren a una HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\ruta que ya no parece existir. No puedo encontrar ninguna información en el registro de Windows 10 sobre esto, tampoco me siento cómodo jugando demasiado con el registro si no estoy seguro de lo que estoy haciendo.

zerothehero
fuente
1
Si renuncias a no querer usar terceros, he estado usando audioswit.ch/er [sí, esa es la URL real] durante aproximadamente 5 años. Tecla de acceso rápido conmutable también. [sin afiliación.]
Tetsujin

Respuestas:

33

Le agradezco que no desee utilizar ningún software de terceros, pero como opción para si no le importa usar un ~ 100kb exe, puede usar Nircmd con los comandos:

nircmd setdefaultsounddevice "Speakers" 1

o

nircmd setdefaultsounddevice "Headphones" 1

Debe asegurarse de usar el nombre exacto de sus dispositivos de audio como se detalla a continuación Playback Devices(haga clic con el botón derecho en el control de sonido en la bandeja del sistema). Puede ser más fácil cambiarles el nombre Propertiesa nombres más simples, especialmente si los nombres chocan de alguna manera.

Al 1final del comando significa "Dispositivo predeterminado". El uso 2significa "Dispositivo de comunicaciones predeterminado".


Si realmente no desea utilizar una herramienta de terceros, aquí hay una diferencia de una clave de registro que parece cambiar cuando cambio mi dispositivo de sonido predeterminado, puede serle útil, pero no sé exactamente qué está haciendo Parece que no es tan simple como un 1 o un 0 para indicar si es un valor predeterminado.

ingrese la descripción de la imagen aquí

Jonno
fuente
+1 de mi parte Este es el mejor camino a seguir. Si realmente no desea que nircmd se coloque en algún lugar de su disco duro (créame que lo quiere, es genial), entonces la alternativa sería cambiarlo dos veces y exportar la clave mencionada aquí y ejecutar el derecho .reg archivo. Sin embargo, no estoy seguro de si esto funcionará, pero ese sería mi enfoque alternativo.
LPChip
Gracias por la respuesta, en realidad me encontré con nircmd, pero tenía mucha curiosidad por encontrar una manera de hacerlo sin ningún software de terceros. Si no sale ningún otro método, consideraré usarlo.
zerothehero
+1. Intenté el enfoque de registro, pero no es tan fácil como se sugirió (al menos con W10). Usando NirCmd también ahora :)
MBaas
6

Desde Windows 8 (¿o quizás antes?), La configuración de audio de la PC se almacena en HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render. Debajo Renderhay claves con nombre GUID, cada una con el DeviceStatevalor dword en la raíz. ¿Pero cómo se codifica?

Ver DEVICE_STATE_XXX Constantes en MSDN :

  • 1 activo
  • 2 discapacitados
  • 4 No presente
  • 8 desenchufado

Entonces, el script powershell / bat para alternar entre 1 y 2 debería hacer el truco.

EDITAR: para obtener un nombre de dispositivo legible para humanos, lea {b3f8fa53-0004-438e-9003-51a46e139bfc},6debajo de la Propertiessubclave

Aziz Kabyshev
fuente
Hola Aziz, probé esto en W10, pero solo funcionó una vez, y cuando intenté cambiar al dispositivo anterior por lotes, de repente desapareció de la lista que aparece al hacer clic en el icono de la bandeja para el audio. También descubrí que primero necesitaba obtener permisos para esa clave de registro (ver groovypost.com/howto/… )
MBaas