Umschalten des Standard-Audiogeräts mit einer Batch-Datei

22

Ich versuche unter Windows 10 eine Batch-Datei zu schreiben, mit der ich beim Ausführen zwischen meinem Headset und meinen Lautsprechern als Standard-Audiogerät wechseln kann. Ich möchte keine Software von Drittanbietern verwenden.

Ich habe versucht, mich umzuschauen, aber ich habe nur alte Skripte gefunden, die nicht zu funktionieren scheinen und die auf einen HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\Pfad verweisen , der anscheinend nicht mehr existiert. Ich kann dazu keine Informationen im Windows 10-Register finden. Außerdem bin ich nicht damit zufrieden, zu viel mit dem Register zu spielen, wenn ich nicht sicher bin, was ich tue.

zerothehero
quelle
1
Wenn Sie aufhören , Drittanbieter nicht zu verwenden, verwende ich audioswit.ch/er [ja, das ist die echte URL] seit ungefähr 5 Jahren. Hotkey auch umschaltbar. [Keine Zugehörigkeit.]
Tetsujin

Antworten:

33

Ich schätze, dass Sie keine Software von Drittanbietern verwenden möchten, aber als Option können Sie Nircmd mit den folgenden Befehlen verwenden, wenn es Ihnen nichts ausmacht, eine ~ 100kb-Exe zu verwenden :

nircmd setdefaultsounddevice "Speakers" 1

oder

nircmd setdefaultsounddevice "Headphones" 1

Sie müssen sicherstellen, dass Sie den genauen Namen Ihrer Audiogeräte verwenden, wie unter Playback Devices(Klicken Sie mit der rechten Maustaste auf die Soundsteuerung in der Taskleiste) aufgeführt. Es ist möglicherweise einfacher, sie Propertiesin einfachere Namen umzubenennen , insbesondere wenn die Namen in irgendeiner Weise in Konflikt geraten.

Das 1am Ende des Befehls bedeutet "Standardgerät". Verwendung 2bedeutet "Standardkommunikationsgerät".


Wenn Sie wirklich kein Tool eines Drittanbieters verwenden möchten, finden Sie hier einen Unterschied zu einem Registrierungsschlüssel, der sich zu ändern scheint, wenn ich mein Standard-Audiogerät ändere. Möglicherweise ist er für Sie von Nutzen, aber ich weiß nicht genau, was es tut. Es ist nicht so einfach wie eine 1 oder eine 0, um anzuzeigen, ob es sich um eine Standardeinstellung handelt.

Bildbeschreibung hier eingeben

Jonno
quelle
+1 von mir. Dies ist der beste Weg. Wenn Sie wirklich nicht möchten, dass nircmd irgendwo auf Ihrer Festplatte abgelegt wird (glauben Sie mir, Sie wollen es, es ist großartig), dann wäre die Alternative, es zweimal zu wechseln und den hier erwähnten Schlüssel zu exportieren und die richtige .reg auszuführen Datei. Ich bin mir nicht sicher, ob das funktionieren wird, aber das wäre mein alternativer Ansatz.
LPChip
Vielen Dank für die Antwort, ich bin tatsächlich selbst auf nircmd gestoßen, war aber sehr neugierig, einen Weg zu finden, dies ohne Software von Drittanbietern zu tun. Wenn keine andere Methode herauskommt, werde ich in Betracht ziehen, sie zu verwenden.
Zerothehero
+1. Versuchte den Registry-Ansatz, aber es ist nicht so einfach wie vorgeschlagen (zumindest mit W10). Jetzt auch mit NirCmd :)
MBaas
6

Seit Windows 8 (oder früher?) Ist die Audiokonfiguration des PCs in gespeichert HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render. Darunter Renderbefinden sich GUID-benannte Schlüssel, die jeweils DeviceStateden Wert dword im Stammverzeichnis enthalten. Aber wie ist es codiert?

Siehe DEVICE_STATE_XXX-Konstanten bei MSDN :

  • 1 Aktiv
  • 2 Deaktiviert
  • 4 Nicht vorhanden
  • 8 Nicht angeschlossen

Ein Powershell / Bat-Skript zum Umschalten zwischen 1 und 2 sollte also helfen.

BEARBEITEN: Um einen lesbaren Gerätenamen zu erhalten, lesen Sie {b3f8fa53-0004-438e-9003-51a46e139bfc},6unter PropertiesUnterschlüssel

Aziz Kabyshev
quelle
Hallo Aziz, ich habe es unter W10 versucht, aber es hat nur einmal funktioniert - und als ich versuchte, per Batch zum vorherigen Gerät zu wechseln, verschwand es plötzlich aus der Liste, die Sie erhalten, wenn Sie auf das Tray-Icon für Audio klicken. Außerdem stellte ich fest, dass ich zuerst Berechtigungen für diesen Registrierungsschlüssel erhalten musste (siehe groovypost.com/howto/… )
MBaas,