Mastodon Schneller Wechsel der Soundausgabe am Rechner :: Yama's Blog

Schneller Wechsel der Soundausgabe am Rechner 7. August 2017, 00:16

Am Rechner hat man meistens seine Lautsprecher angeschlossen, Headset und auch seinen Fernseher. Um den Sound zwischen diesen drei Geräten umzuschalten kann man unter Sound bei Wiedergabegeräte den Ausgang als Standardgerät einstellen.
Aber natürlich möchte man einen schnellen und einfachen Weg dafür haben ;)

Früher habe ich Codeschnipsel für AutoIt aus dem Internet verwendet um die Soundausgabe schnell zu wechseln. Mit einem Doppelklick bzw. Tastenkürzel.

ShellExecute("mmsys.cpl")
WinWaitActive("Sound")
Send("{DOWN}{TAB}{TAB}{DOWN}{DOWN}{ENTER}{TAB}{TAB}{ENTER}")
WinClose("Sound")

Damit konnte man das erste Gerät in der Liste auswählen. Man muss also {TAB}‚s hinzufügen, damit man das nächste auswählt. Dafür hat das Script wirklich die Fenster geöffnet und Tastatureingaben nachempfunden. Lief natürlich nicht immer so toll.

Später habe ich bemerkt, dass nircmd.exe die Funktion enthält, das Standardgerät zu ändern (ich habe nircmd.exe schon vorher in Verwendung gehabt, um meine Monitore mit einem Tastendruck auszuschalten).
Aber ich war nicht damit zufrieden einfach Tastenkürzel oder die G-Tasten meiner Logitech-Tastatur zu verwenden. Ich wollte mit dem Display der Tastatur das Standardgerät ändern!
In Python sind die Schnittstellen für Windows sehr limitiert. Dafür existiert pywin32, welches ich mir noch nicht genau angeschaut und schnell eine Lösung mit nircmd.exe gebastelt habe.

Mit nircmd.exe ist es möglich die Geräte mit dem selber vergebenen Namen anzusprechen. Das macht die Eingabe der Parameter deutlich einfacher.

nircmd.exe setdefaultsounddevice Headset

Das reicht schon aus, um den ganzen Sound vom Rechner zum Headset zu bringen. Man muss nur vorher unter Sounds das Gerät auf „Headset“ umbenennen und eine Verknüpfung mit dem Befehl anlegen. Für Tastenkürzel muss dieser im Startmenü sein oder auf dem Desktop.
Mit Python habe ich für das Display der Tastatur ein Script geschrieben, welches auf die Display-Tasten reagiert und somit nircmd.exe mit dem richtigen Gerätenamen ausführt.

Jetzt kann ich über Lautsprecher Musik hören. Sobald ich mit jemandem einen Voice-Chat starte, kann ich mit einem Tastendruck die Musik auf mein Headset legen. Und wenn ich etwas von der Couch aus auf dem Fernseher sehen möchte, kann ich den Ton direkt auf den Fernseher legen.

Und jetzt schaue ich mir pywin32 an :)

Yama

Move to Top