2026-04-25 17:21:18 +02:00
2026-04-25 17:21:18 +02:00
2026-04-25 17:21:18 +02:00
2026-04-25 17:21:18 +02:00
2026-04-25 17:21:18 +02:00

SunshineDisplaySwitch

Löst ein Problem beim Game-Streaming mit Sunshine + Moonlight: Der physische PC-Monitor soll während des Streams deaktiviert sein und danach zuverlässig wieder aktiviert werden.

Hintergrund

Sunshine läuft als Windows-Dienst (Session 0 / SYSTEM-Kontext). DisplaySwitch.exe /internal hat aus diesem Kontext zwar keinen Fehler geworfen, aber keinen Effekt gehabt — das Reaktivieren eines deaktivierten Monitors erfordert die interaktive Benutzersession. Die Lösung nutzt den Task Scheduler mit InteractiveToken, um den Befehl garantiert in der richtigen Session auszuführen.

Dateien

Datei Zweck
register_task.bat Einmalige Einrichtung — registriert den Scheduled Task
idd_an.bat Sunshine Preparation Command — schaltet auf virtuellen Monitor um
idd_aus.bat Sunshine Teardown Command — reaktiviert den physischen Monitor

Einrichtung

1. Task registrieren (einmalig)

register_task.bat per Doppelklick ausführen und den UAC-Dialog bestätigen. Der Task MoonlightTeardown wird in der Windows-Aufgabenplanung registriert.

Zur Kontrolle:

schtasks /query /tn MoonlightTeardown /fo list

2. Sunshine konfigurieren

In der Sunshine Web-UI unter Configuration > General:

Feld Wert
Command Preparations — Do Pfad zu idd_an.bat
Command Preparations — Undo Pfad zu idd_aus.bat

Funktionsweise

Stream startet
  └─> idd_an.bat
        └─> DisplaySwitch.exe /external   (virtuellen Monitor aktivieren)

Stream endet
  └─> idd_aus.bat  [läuft in Session 0]
        └─> Start-ScheduledTask 'MoonlightTeardown'
              └─> Task Scheduler  [InteractiveToken = Benutzersession]
                    └─> DisplaySwitch.exe /internal   (physischen Monitor reaktivieren)

Voraussetzungen

  • Windows 10/11
  • Sunshine als Streaming-Server
  • Kein zusätzliches Tool erforderlich — nur Windows-Bordmittel
S
Description
No description provided
Readme
88 KiB
Languages
Batchfile 100%