Windows Programm Sound Ausgabe automatisiert steuern

Don-DCH

Captain
Registriert
Aug. 2009
Beiträge
3.235
Guten Abend zusammen,

gibt es eine Möglichkeit, am besten per PowerShell das Ausgabegerät für eine App/Programm unter Windows festzulegen?
Das Problem ist, das Spiel unterstützt keine Auswahl des Soundausgabegerätes, daher stelle ich diese Einstellungen immer über die Einstellungen unter App-Lautstärke und Geräteeinstellungen ein.

Das doofe ist nur, das ich bei jedem Start des Spiels die Ausgabe erneut anpassen muss, zwar steht diese auf dem richtigen Ausgabegerät, jedoch kommt kein Ton an, erst stelle ich so beispielsweise immer auf Standard um und dann wieder auf Virtual Audio Cable.

Dann funktioniert alles. Damit ich das aber nicht vergesse und bei der Videoaufnahme auch immer Sound habe, wäre es klasse, wenn man das automatisiert einstellen könnte.

Mit dem Module AudioDeciveCmdlets kann man leider nur das Standard Ausgabegerät anpassen, jedoch leide nicht pro App.

Alternativ kann es natürlich auch etwas anderes als PowerShell sein. Schön wäre es, wenn das Programm prüft ob die App startet, das würde sich ja mit PowerShell alles lösen lassen. Nur bekomme ich das da nicht eingetsellt.

Viele Grüße und einen schönen Abend :)

Habe die Lösung gefunden :D

Zuerst habe ich mit SoundVolumeView von Nier
https://www.nirsoft.net/utils/sound_volume_view.html

Den Device Namen des Lautsprechers ausgelesen, das würde vielleicht auch per Kommandozeile gehen, aber ich hatte zuerst dieses Prorgamm heruntergeladen.

Dann habe ich mir SoundVolumeCommandLine https://www.nirsoft.net/utils/sound_volume_command_line.html
heruntergeladen und die svcl Datei nach C:\Windows kopiert, ich glaube das wird benötigt um die Exe in der CMD Global aufzurufen, zumidnest hatte ich das so Verstanden in einem Tutorial wo es um die klassische Nier Commandlets ging.

Dadruch ist im prinzip alles getan und man kann ein Batch Skript schreiben, welches die Soundausgabe anpasstBeispielsweise so:

Bash:
@echo off
timeout /t 4 /nobreak
svcl.exe /SetAppDefault "Realtek High Definition Audio" all "Programmname.exe"
timeout /t 2 /nobreak
svcl.exe /SetAppDefault "VB-Audio Virtual Cable" all "Programmname.exe"


Ich habe mir hier noch eine Kleine Verzögerung eingebaut.
Nun ist die Frage wie bekommt man das ganze hin, das es funktioniert sobald man das Programm startet?
Dafür muss man die Eriegnisüberwachung anpassen.

Dazu habe ich diese Anleitung benutzt
http://woshub.com/run-script-when-app-opens-closes/

In dem Gruppenrichtlinien Editior geht man unter
Computerkonfiguration --> Windows-Einstellungen-->Sicherheitseinstellungen-->LokaleRichtlinien-->Überwachungsrichtlinie
Und Schlatet dort die Prozessnachverfolgung überwachen auf Erfolgreich.

Anschließend werden alle Programmstarts unter Sicherheit in den Windows Protokollen gespeichert und man kann wie in der Anleitung in der Aufgabenplanung einen Task erstellen, welcher auf sein Wunschprogramm hört und dann das Batch Skript ausführt.

Das alles hat wudnerbar geklappt.
Leider wird das Skript trotz @Echo off bei mir angezeogt das ist nicht so schön aber auch nicht dramatisch.
Wichtig ist, dass es soweit wunderbar funktioniert.
Ich hoffe ich habe nichts vergessen und man versteht es halbwegs.
Ich wollte unbedingt noch die Lösung posten, die ich gefunden habe bevor ich schlafen gehe.

In diesem Sinne, gute Nacht :)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Mulciber und Hardkorn
Hi

Was genau ist dein Einsatzzweck ?

Streaming , ua Gamesound und Musik trennen ?

Beschreibe das Mal im Detail.

Mfg.
 
Genau, ich möchte Gameplay aufzeichnen und möchte nebenbei noch Musik etc. laufen lassen können ohne das der Sound mit ins Gameplay Video kommt. Nur den Spielesound möchte ich da haben.

Durch Virtual Audio Cable habe ich die Möglichkeit das zu trennen und nehme dann nur den Ingame Sound mit Nvidia Shadowplay auf.
Dafür habe ich dieses Tutorial verwendet:

https://cmetcalfe.ca/blog/record-audio-from-specific-applications-with-shadowplay.html

Erste Tests heute zeigen, dass alles sehr gut klappt :)

Grüße
 
Zurück
Oben