Voraussichtliche Lesedauer: 9 Minuten
Einige von euch werden den Schmerz fühlen, wenn man ein Setup bestehend aus mehreren Monitoren und dann noch beispielsweise einem Fernseher hat auf dem man immer mal wieder ein paar Spiele spielt. Man braucht dann seine 2 Hauptmonitore nicht und will stattdessen nur den Fernseher als Ausgabequelle aktiv haben. Dafür muss man sich dann durch die Windows Menüs durchackern und dann die einen Monitor ausschalten, den Fernseher anschalten, dann die Hauptanzeige auswählen und und und…
Es muss ja nicht einmal zwangsläufig das Gaming-Setup sein, sondern kann vielleicht auch ein eigenes Setup für die Arbeit betreffen bei der man seine Monitor-/Audioeinstellungen häufiger anpassen muss und immer und immer wieder dasselbe tun muss.
Mir ging das so gewaltig auf den Geist, dass ich nach einer Lösung gesucht habe. Ich habe für mich die perfekte Lösung gefunden das ganze Prozedere inklusive eines Audiogerätewechsels per Hotkey zu steuern. Das heißt ihr könnt dafür eine Tastenkombination oder Sondertaste auf eurer Tastatur nutzen oder auch einen Knopf auf einem Elgato Streamdeck, falls ihr so etwas besitzt.
Somit handelt es sich bei der Lösung um eine Art Teilautomatisierung, da sich nur sehr schlecht vollautomatisieren lässt, wann ihr spielen wollt und immer auf das jeweilige Setup wechseln wollt. Wobei das auch sicherlich möglich wäre. Aber es erscheint mir in den allermeisten Fällen eher sinnfrei.
Warum sollte ich zwischen verschiedenen Konfigurationen mit mehreren Monitoren wechseln?
Ein gängiges Problem beim Einsatz mehrerer Bildschirme, insbesondere wenn einige von ihnen dupliziert sind, besteht darin, dass die NVIDIA-Treiber die vertikale Synchronisierung (um das Zerreißen des Bildes zu verhindern) nur für den Hauptbildschirm aktivieren, und das auch nur dann, wenn dieser Bildschirm nicht dupliziert ist. Dies stellt im alltäglichen Desktop-Gebrauch kein Problem dar, doch wenn es um Spiele oder HD-Filme geht, gibt es keine Möglichkeit, das Zerreißen des Bildes auf einem anderen Bildschirm als dem Hauptbildschirm zu verhindern, sofern er dupliziert ist. Wenn ihr zusätzlich einen Fernseher angeschlossen habt, wird die Situation unkomfortabel, da man jedes Mal, wenn man ein Spiel spielen oder einen Film auf dem Fernseher anschauen möchten, ihn zum primären Bildschirm machen müssen. Achja und das Ganze geht natürlich nicht nur für NVIDIA, sondern auch AMD oder auch Intel.
Mit dem Skript kann man nun problemlos verschiedene Konfigurationsprofile für seine Bildschirme erstellen, wie beispielsweise „Nur TV“, „Nur Bildschirm“, „TV und Bildschirm dupliziert“ oder „Bildschirm 1 und 2 dupliziert“, und schnell zwischen ihnen wechseln. Des Weiteren kann man ergänzend Tools einsetzen und sonstige Einstellungen bei dem Druck einer Taste treffen.
So werden wir hier auch das Audiogerät umstellen, da man beim Zocken dann beispielsweise seine Kopfhörer nutzen möchte und nicht mehr seine Lautsprecher. Das würde auch für das Mikrofon gehen. Grafikkarteneinstellungen könnten, wenn gewünscht, ebenfalls angepasst werden.
Voraussetzungen
Wir benötigen erst einmal einige Tools:
- AutoHotkey v2
- nircmd x64 (die Downloads sind ganz unten auf der Webseite)
- MonitorProfileSwitcher
Nicht wundern, die Tools und ihre Webseiten sind schon älter aber funktionieren auch auf modernen Windows-System wie Windows 10 oder Windows 11 (beide getestet) einwandfrei.
AutoHotkey könnt ihr ganz normal mit dem Installer über die exe-Datei installieren. Das Tool wird dann unten den Programmen auf eurer primären Festplatte abgelegt.
Nach dem Download dann nircmd-x64.zip
einfach entpacken und die nircmd64.exe
per Rechtsklick als Admin starten und den Installer dann die Datei in Windows erstellen lassen. Die liegt dann direkt unter dem Pfad von Windows: C:\Windows\nircmd.exe
Die MonitorProfileSwitcher.zip
muss ebenfalls wieder entpackt werden. Der Ordner der daraus entsteht sollte dann, falls er anders lautet, zu MonitorProfileSwitcher
umbenannt werden. Diesen Ordner müsst ihr dann unter C:\Program Files\
ablegen also so, dass der Pfad am Ende C:\Program Files\MonitorProfileSwitcher
lautet. Im Deutschen heißt der Ordner einfach Programme
anstatt Program Files
.
Damit sind alle nötigen Voraussetzungen geschaffen, um nun das Skript zu erstellen und etwaige Hotkeys zu erstellen.
MonitorProfileSwitcher Profile erstellen
Um Profile zu erstellen, solltet ihr der Einfachheit halber die MonitorSwitcherGUI.exe
im C:\Program Files\MonitorProfileSwitcher
Pfad öffnen. Es öffnet sich unten rechts bei den Minisymbolen in der Taskleiste, wo auch Lautsprecher und Uhrzeit sind, ein kleines schwarzes Monitorsymbol. Das könnt ihr mit der linken Maustaste anklicken und ein kleines Fenster über dem Symbol öffnet sich.
Dort könnt ihr nun durch Save Profile
und Delete Profile
Profile anlegen und löschen. Es wird immer die Konfiguration gespeichert, die gerade aktiv ist. Sprich ihr müsst, wenn ihr von drei angeschlossenen Monitor nur euren Fernseher aktiv haben wollt und diesen auch als Hauptmonitor, müsst ihr dieses Setup gerade aktiv haben und von eurem Fernseher aus Save Profile
klicken und dann auf New Profile
. Hier gilt zu beachten: Die Profile dürfen keine Leerzeichen im Namen enthalten! Im Idealfall mit Bindestrichen arbeiten.
Die Hotkeys braucht ihr hier nicht hinterlegen, da diese nur funktionieren, wenn das GUI Tool läuft und dieses wollen wir nicht dauerhaft im Einsatz haben, da wir es über das Kommandozeilen Tool lösen und AutoHotkey nutzen.
Skripterstellung
Erstellt eine neue Datei mit der .ahk
Endung also zum Beispiel Audio & Monitor Device Switcher.ahk
. Ihr müsst die Dateiendungen aktiviert haben, um die Datei inklusive der Endung erstellen zu können. Falls ihr nicht wisst, wie das geht, könnt ihr das in einem Artikel von GIGA zu Windows 10 und 11: Dateiendungen anzeigen nachlesen.
Die Datei könnt ihr nun dort ablegen, wo ihr möchtet. In Zuge dessen solltet ihr eine Verknüpfung von dieser Datei erstellen. Das macht ihr indem ihr die Datei mit einem Rechtsklick anklickt und dann Verknüpfung erstellen drückt. Diese Verknüpfung müsst ihr in den Autostart Ordner verschieben.
Ruft dazu das Ausführen-Fenster auf, indem ihr Windows-Taste + R drückt. Gib im erschienenen Fenster shell:startup
ein. In den geöffneten Ordner nun die Verknüpfung verschieben. Nun startet die Datei jedes Mal automatisch, wenn ihr euren PC startet.
Jetzt aber zum eigentlichen Teil des Skripts. Öffnet die Datei mit dem Editor eurer Wahl, beispielsweise Notepad++ oder Visual Studio Code oder auch andere Tools.
Das Skript
#Requires AutoHotkey v2.0
; ======================================================================================================================
; Everything until the first `return` autoruns
; ======================================================================================================================
; Function definition. Changes Audio Output Device to `device`
; ======================================================================================================================
ChangeAudioOutput(device, show_msg_box:=true)
{
symbols := Map("Kopfhörer", "🎧", "Lautsprecher", "🔊", "LG-TV", "📺️") ; Python dict-like object, callable by `Val := Array[Key]`
if (show_msg_box)
symbol := symbols[device]
{
; Show a message box
MsgBox(
; MsgBox's message in the box
"Selected device: " symbols[device] device,
; MsgBox's title/heading
"Audio Output Device changed",
; time after which the MsgBox will close
"T0.3"
)
}
Run("C:\Windows\nircmd.exe setdefaultsounddevice " device) ; change device using nircmd
}
; set Speakers as default device for startup
;ChangeAudioOutput("Lautsprecher", false) ; false -> don't show message box at startup
return ; Everything above this `return` autoruns
; ======================================================================================================================
; ======================================================================================================================
; Audio Output Device Switch to Speakers/Headphones/TV
; ======================================================================================================================
; Audio Output Device Switch to Speakers
; ~ means passthrough for the Hotkey so others programs can use it too (in this case MonitorSwitcher)
~^+F1:: ; Strg + Umschalt + F1
{
Run '"C:\Program Files\MonitorProfileSwitcher\MonitorSwitcher.exe" -load:"C:\Users\Sascha\AppData\Roaming\MonitorSwitcher\Profiles\PC-Main-only.xml"'
ChangeAudioOutput('Lautsprecher')
}
; Audio Output Device Switch to Headphones
~^+F2:: ; Strg + Umschalt + F2
{
Run '"C:\Program Files\MonitorProfileSwitcher\MonitorSwitcher.exe" -load:"C:\Users\Sascha\AppData\Roaming\MonitorSwitcher\Profiles\TV-only.xml"'
ChangeAudioOutput('Kopfhörer')
}
; Audio Output Device Switch to TV
~^+F3:: ; Strg + Umschalt + F3
{
Run '"C:\Program Files\MonitorProfileSwitcher\MonitorSwitcher.exe" -load:"C:\Users\Sascha\AppData\Roaming\MonitorSwitcher\Profiles\PC-Main+Fernseher.xml"'
ChangeAudioOutput('LG-TV')
}
Erklärung der Skriptteile
Vieles von dem Skript kann einfach zu übernommen werden, wenn die vorherigen Schritte beachtet wurden. Zeilen die mit ;
beginnen sind Kommentarzeilen und werden nicht ausgeführt. Wenn man das Semikolon bei der Zeile unter der Zeile ; set Speakers as default device for startup
entfernt, wird das Audiogerät bei jedem Systemstart respektive jedem Start des Skripts (nicht das Drücken eines Hotkeys) zu dem dort angegebenem geändert. Wie dort steht wird alles oberhalb dieses return
Befehls automatisch ausgeführt. Man kann auch mehr ergänzen.
Die ChangeAudioOutput Methode ändert über das nircmd Tool den Audioausgang. In der Methode werden außerdem noch die Namen der Audiogeräte zu Symbolen gemappt, welche im Popup-Fenster beim Drücken des Hotkeys gezeigt werden. Der wichtige Teil ist nun aber, dass die Audiogerät die Namen eurer Audiogeräte bekommen. Die Audiogeräte dürfen keine Leerzeichen im Namen enthalten! Öffnet dazu eure Soundeinstellungen und schaut wie eure Geräte lauten. Beispielsweise eben Lautsprecher oder euer Headset das Corsair-XYZ, dass ihr dann zu Kopfhörer umbenennen könnt. Ihr könnt aber auch Corsair-XYZ als Namen behalten und müsst dann überall im Skript Kopfhörer durch Corsair-XYZ austauschen und das an jeder Stelle.
Nun zu den kryptischen Begriffen, die aber auch im Skript erklärt sind. ~^+F1::
bedeutet, dass der Hotkey auf Strg + Umschalt + F1
liegt. Sprich der darin verankerte Befehl wird dann beim Auslösen ausgeführt. Ihr könnt euren Hotkey auch komplett anders belegen. Wie ihr das macht, könnt ihr hier bei den AutoHotkey Definitionen nachlesen. Dasselbe gilt auch für die anderen zwei angegeben Hotkeys.
Wichtig ist noch der Run
Befehl, der MonitorSwitcher aufruft und eben das jeweilige Profil: Run '"C:\Program Files\MonitorProfileSwitcher\MonitorSwitcher.exe" -load:"C:\Users\Sascha\AppData\Roaming\MonitorSwitcher\Profiles\TV-only.xml"'
Wie bereits erwähnt liegen eure Profile immer unter C:\Users\<Benutzer>\AppData\Roaming\MonitorSwitcher\Profiles
\ und ihr müsst nur den Namen eures Profils ergänzen, wie in dem Fall TV-only.xml
. Und natürlich das Austauschen von <Benutzer>
mit eurem Benutzernamen nicht vergessen. Das ist dann auch die ganze Magie und ihr könnt loslegen die Hotkeys zu nutzen!
Fazit
Das Einrichten und Umschalten zwischen verschiedenen Monitor- und Audio-Konfigurationen kann eine zeitraubende Aufgabe sein, insbesondere wenn man mehrere Bildschirme und Audiogeräte verwendet. Dies kann besonders ärgerlich sein, wenn man häufig zwischen verschiedenen Setups wechselt, beispielsweise zwischen einem Gaming-Setup und einem Arbeits-Setup.
Eine Lösung für dieses Problem besteht darin, ein Skript zu verwenden, das die Umschaltung zwischen verschiedenen Monitorprofilen und Audioausgabegeräten per Tastenkombination ermöglicht. Dies erleichtert das Umschalten zwischen verschiedenen Konfigurationen erheblich, ohne dass man jedes Mal durch die Windows-Menüs navigieren müssen.
Die Grundlage für dieses Skript besteht aus mehreren Tools, darunter AutoHotkey, nircmd und MonitorProfileSwitcher. AutoHotkey ermöglicht die Erstellung von Hotkeys, mit denen Sie die gewünschten Konfigurationen schnell wechseln können. Der nircmd wird verwendet, um die Audioausgabegeräte zu ändern, und MonitorProfileSwitcher hilft bei der Verwaltung der Monitorprofile.
Insgesamt bietet dieses Skript eine Teilautomatisierung, um das lästige manuelle Anpassen von Konfigurationen zu vermeiden. Es ist besonders nützlich, wenn man verschiedene Setups mit mehreren Monitoren und Audiogeräten verwendet und regelmäßig zwischen ihnen wechseln muss.
Noch ein Hinweis. Falls ihr eine Tastatur mit Extratasten wie beispielsweise G1 bis G6 bei Logitech besitzt, könnt ihr die Tastenkombinationen / Hotkeys direkt mit der Software darauf legen und macht euch das Leben noch leichter.
0 Kommentare