Dienstprogramm für den Windows-Infobereich
Für jede App eine eigene Lautstärke,
mit einem Klick.
Chrome auf 30 %, Teams auf 70 %, Spotify auf 20 %. Statt jedes Mal den Lautstärkemixer zu öffnen, stellt ein Profil alles wieder her. Zwei Klicks im Menü, oder ein Regler in der Oberfläche.
Das Fenster, das das Symbol im Infobereich öffnet. Dieselben Werte lassen sich auch direkt im Menü ändern.
Was es tut
Was Sie im Lautstärkemixer gemacht haben, in zwei Klicks aus dem Infobereich.
Lautstärke und Stummschaltung pro App
Fasst die gerade tönenden Sitzungen nach Anwendung zusammen. Eine App mit vielen Prozessen, etwa Chrome, bleibt eine Zeile.
Für jede App ein anderes Ausgabegerät
Das Spiel auf die Lautsprecher, Discord auf das Headset. Auch das Standardgerät wird im Menü umgeschaltet, und ein Profil speichert das Gerät zusammen mit den Lautstärken.
Bleibt erhalten, wenn die App geschlossen und neu geöffnet wird
Merkt sich die Lautstärke jeder App und stellt sie wieder her, sobald diese App wieder etwas abspielt . Auch ein aus- und wieder eingestecktes Gerät oder das Aufwachen aus dem Standby wendet das Profil erneut an.
Das Mikrofon in derselben Hand
Der dringendste Knopf in einer Besprechung. CtrlAltK schaltet das Mikrofon stumm und wieder frei.
Die Oberfläche
Profile bearbeiten, Tastenkürzel ändern, Automatisierungsregeln schreiben — alles im Fenster. Die Einstellungsdatei muss nie von Hand angefasst werden.
Hinaus geht nur, was Sie einschalten
Anonymer Nutzungsbericht, Updateprüfung und Entwicklerhinweise sind alles, was es gibt, und alle drei sind standardmäßig aus. Die Oberfläche öffnet nur auf 127.0.0.1 und verlangt ein bei jedem Start neu erzeugtes Token.
Profile
Ändert sich die Lage, sollten sich alle App-Lautstärken mitändern.
Drei sind eingebaut, und der aktuelle Zustand lässt sich jederzeit als neues Profil sichern. Das automatische Umschalten — beim Start einer App, beim Anstecken eines Geräts oder nach Tageszeit — ist standardmäßig aus.
| Profile | Gesamt | Einstellungen pro App |
|---|---|---|
| Work | 72% | Chrome 30% · Teams 70% · Spotify 20% |
| Gaming | 80% | Discord 65 % · Spotify 15 % · Browser stumm |
| Meeting | 60% | Teams 80 % · Zoom 80 % · Chrome 20 % · Spotify stumm |
Tastenkürzel
Wenn die Hände ohnehin auf der Tastatur liegen.
Alle sind änderbar, und wenn ein anderes Programm die Kombination schon belegt, wird es Ihnen gesagt, statt still zu scheitern.
- CtrlAlt↑ Gesamtlautstärke höher
- CtrlAlt↓ Gesamtlautstärke niedriger
- CtrlAltM Stumm
- CtrlAltK Mikrofon stummschalten
- CtrlAltS Fenster
- CtrlAlt1–3 Profil wechseln
Routing pro App
Einen Weg, den Windows nie dokumentiert hat, geprüft bevor er benutzt wird.
gemessen
„nur diese App auf das Headset“ hat keine öffentliche API. Es muss die interne Schnittstelle aufgerufen werden, die die Windows-Einstellungen verwenden, Windows.Media.Internal.AudioPolicyConfig , und sowohl ihre Schnittstellen-ID als auch die Anordnung ihrer vtable unterscheiden sich von Build zu Build. SoundDesk rät dabei nicht.
Der gefährliche erste Aufruf geschieht in einem eigenen Prozess, damit das Symbol einen Absturz übersteht, und nachdem eine Anwendung wirklich verschoben wurde, wird mit Get zurückgelesen; erst wenn dasselbe Gerät zurückkommt, wird auf „bestätigt“ hochgestuft. Weicht das Rücklesen ab, schaltet sich die Funktion selbst ab und öffnet die Windows-Einstellungsseite.
| Zustand | Beleg |
|---|---|
| verified | Ein Prozess wurde wirklich verschoben und die zurückgelesene endpoint id stimmt überein. Spielt nichts, legt der Selbsttest sich mit einem stillen Stream eine eigene Sitzung an und prüft gegen sich selbst |
| probable | Es ließ sich nichts zum Zurücklesen erzeugen — belegt ist nur, dass das Aktivieren der Factory und der Aufruf über die vtable nicht abgestürzt sind |
| unsupported | Der Selbsttest ist fehlgeschlagen, oder der Aufruf gelang und Windows hat ihn nicht übernommen → Sie werden zur Einstellungsseite geführt |
Sicherheit
Sicher, auch direkt aus dem Downloadordner gestartet.
Das sind die Probleme, auf die eine portable ausführbare Datei tatsächlich trifft. Keine abstrakte Checkliste: hinter jeder Zeile stehen Code und ein Test.
| Bedrohung | Antwort darauf |
|---|---|
| DLL-Hijacking Eine gefälschte DLL neben der exe |
System-DLLs werden nur über den System32 absoluten Pfad geladen. Beim Start fallen der exe-Ordner und das Arbeitsverzeichnis aus dem Suchpfad |
| Mutex-Squatting Eine andere Sitzung belegt den Namen zuerst und blockiert den Start |
Das Einzelinstanz-Objekt liegt im Namensraum Local\ . |
| Einschleusen über die Einstellungsdatei | Eine endpoint id erreicht einen COM-Aufruf erst, wenn sie eine Prüfung per regulärem Ausdruck bestanden hat |
| Gefälschte Logzeilen Ein Zeilenumbruch im Prozessnamen schleust eine falsche Logzeile ein |
App- und Gerätenamen werden von Steuerzeichen befreit und in der Länge begrenzt |
| Ein Autostart-Pfad ohne Anführungszeichen | Der Run-Wert ist immer ein absoluter Pfad in Anführungszeichen, und es wird nur HKCU verwendet |
| Manipulation der Oberfläche Ein anderes Programm auf demselben PC oder eine Webseite |
127.0.0.1 ausschließlich, dazu ein bei jedem Start neues 256-Bit-Token und eine Host- und Origin-Prüfung. Das Token wird beim ersten Laden zu einem HttpOnly-Cookie und verschwindet aus der Adressleiste |
Datenschutz
Hinaus geht nur, was Sie einschalten.
App-Namen und Sitzungsinformationen werden auf diesem PC verarbeitet und nirgendwo sonst, und die Einstellungen sind eine einzige JSON-Datei. Genau drei Funktionen erreichen das Netz — anonymer Nutzungsbericht, Updateprüfung und Entwicklerhinweise — und alle drei sind standardmäßig aus. Bis Sie eine davon einschalten, geht keine einzige Anfrage hinaus.
| Einstellungsdatei | %APPDATA%\SoundDesk\config.json |
|---|---|
| Protokoll | %APPDATA%\SoundDesk\sounddesk.log |
| Anonymer Nutzungsbericht | Standardmäßig aus — eingeschaltet einmal täglich: eine zufällige Installations-ID, die Version, der Windows-Build, die Sprache und drei Zählwerte |
| Updateprüfung · Entwicklerhinweise | Standardmäßig aus — eingeschaltet nur die laufende Version und die Sprache. Die Installations-ID wird nicht gesendet |
| Was nie hinausgeht | App-Namen · Gerätenamen · Dateipfade · der Windows-Kontoname |
| Verwendete APIs | IMMDeviceEnumerator · IAudioSessionManager2 · ISimpleAudioVolume · IPolicyConfig · AudioPolicyConfig |
| Autostart | HKCU\Software\Microsoft\Windows\CurrentVersion\Run (optional) |
Selbsttest
Fragen Sie die App selbst, ob sie auf Ihrem PC funktioniert.
Sie führt ihre eigenen Funktionen eine nach der anderen auf dem echten Audiostack aus und stellt wieder her, was sie angefasst hat. Nichts, was einen Ton erzeugen würde, wird überhaupt getan — die Gesamtlautstärke wird belegt, indem der bereits gesetzte Wert erneut geschrieben wird, was nur den Aufrufweg beweist.
| Befehl | Was er prüft |
|---|---|
| --selftest-audio | Geräte · Gesamt · Mikrofon · Lautstärke, Stummschaltung und Routing pro App · Profile · globale Tastenkürzel. Spielt keine App, wird das Routing gegen eine eigene stille Sitzung geprüft |
| --selftest-panel | Ob die gepackte Datei die Oberfläche wirklich ausliefert |
| --report | Geräte, Sitzungen und Profile als JSON |
Ergebnis auf diesem PC
OK Lautstärke pro App (firefox.exe 100 % → 42 % → wiederhergestellt)
OK Stummschaltung pro App
OK Ausgabe-Routing pro App (firefox.exe → ASUS VZ279 → wiederhergestellt)
OK Wechsel des Standardgeräts · Profile · globale Tastenkürzel
— Mikrofon (dieser PC hat kein Eingabegerät)
11 passed, 0 failed, 2 skipped — Windows 10 22H2 Build 19045
Überall
In Ihrer Sprache, auf Ihrem PC.
Dieselben Einstellungen zu Hause und im Büro, gelesen in der Sprache, die Sie benutzen, bei Bedarf aus einem Makro aufgerufen.
12 Sprachen
Folgt der Anzeigesprache von Windows. Sie können auch selbst eine wählen; dann wechseln Oberfläche und Menü sofort, ohne Neustart.
한국어 · English · 日本語 · 简体中文 · 繁體中文 · Español · Português · Français · Deutsch · Русский · Italiano · Tiếng Việt
Zu Hause und im Büro dieselben Einstellungen
Exportieren Sie Profile, Tastenkürzel und Regeln in eine Datei und importieren Sie sie auf einem anderen PC. Geräte werden über den Namen zugeordnet — dasselbe Headset hat auf jedem PC eine andere ID, sodass das bloße Kopieren der Datei das Routing still verschwinden ließe. Geräte, die dieser PC nicht hat, werden Ihnen namentlich genannt.
Aus einem Makro aufrufen
Direkt von einer Stream-Deck-Taste oder aus einer Zeile AutoHotkey nutzbar. Es funktioniert, ob das Symbol läuft oder nicht, und öffnet kein zweites. Exitcode 0, wenn sich etwas geändert hat, 1, wenn nichts passte.
SoundDesk.exe --set-app chrome.exe=25
SoundDesk.exe --profile Gaming
SoundDesk.exe --list apps
Installation
Eine Datei. Kein Installer.
SoundDesk.exe an einen beliebigen Ort legen und starten — im Infobereich erscheint ein Symbol. Zum Entfernen die Datei und den Einstellungsordner löschen. Python wird nicht gebraucht.