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 im Bedienfeld.
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.
Das Bedienfeld
Profile bearbeiten, Tastenkürzel ändern, Automatisierungsregeln schreiben — alles im Fenster. Die Einstellungsdatei muss nie von Hand angefasst werden.
Es gehen nur drei Dinge hinaus
Automatische Aktualisierung, anonyme Nutzungsberichte und Hinweise des Entwicklers - mehr ist es nicht. nur die automatische Aktualisierung ist von Anfang an ein, und bei einer geladenen Datei wird die Signatur geprüft, bevor Sie gefragt werden. Das Bedienfeld lauscht 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 des Bedienfelds 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
Drei Dinge verlassen diesen PC, und hier stehen sie.
Anwendungsnamen und Sitzungsdaten werden auf diesem PC verarbeitet, und die Einstellungen sind eine einzige JSON-Datei. Drei Funktionen gehen ins Internet: automatische Aktualisierung, anonyme Nutzungsberichte und Hinweise des Entwicklers. Die Handy-Fernbedienung bleibt aus, bis Sie sie einschalten, und zeigt Anwendungsnamen dann nur den gekoppelten Handys im selben privaten Netzwerk. nur die automatische Aktualisierung ist von Anfang an ein: Sie fragt, ob es eine neuere Fassung gibt, lädt sie gegebenenfalls und fragt dann, ob installiert werden soll. Gesendet werden die laufende Version und die Sprache, nie die Installations-ID, und im Bedienfeld lässt sie sich abschalten. Die beiden anderen bleiben still, bis Sie sie einschalten.
| Einstellungsdatei | %APPDATA%\SoundDesk\config.json |
|---|---|
| Protokoll | %APPDATA%\SoundDesk\sounddesk.log |
| Automatische Aktualisierung | Standardmäßig ein — einmal pro Start, nur die laufende Version und die Sprache. Die Installations-ID wird nicht gesendet. Eine neue Fassung wird geladen, Windows bestätigt die Signatur von PROJECTTEAMFORYOU, und das Installieren kostet einen Klick |
| 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 |
| Hinweise des Entwicklers | Standardmäßig aus — eingeschaltet nur die laufende Version und die Sprache |
| 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 das Bedienfeld 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 Bedienfeld 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. Python wird nicht gebraucht.
—Besuche insgesamt —Downloads insgesamt
Wenn Ihr Browser oder Ihre Firmenrichtlinie ausführbare Dateien blockiert, nehmen Sie das zip. Darin liegt dieselbe Datei, und für beide gibt es eine Prüfsumme.
Noch einmal ansehenIhr Browser blockiert die Datei möglicherweise als verdächtigen Download. Das heißt, dass sie bisher nur wenige heruntergeladen haben, nicht dass mit ihr etwas nicht stimmt. In Chrome öffnen Sie die Downloadliste, klicken auf ⋮ und wählen Beibehalten; blockiert Windows, wählen Sie Weitere Informationen → Trotzdem ausführen. Wirklich prüfen lässt sich zweierlei: dass der Herausgeber PROJECTTEAMFORYOU ist, und dass der SHA-256 oben zu der Datei passt, die Sie erhalten haben. Die Warnung verschwindet, je mehr Menschen die Datei laden.
Änderungen
Was sich wann geändert hat.
Alle Zeiten sind koreanische Standardzeit (KST). Die vollständige Liste steht in der Änderungsdatei im Repository.
-
v1.7.0 Neueste
- Handy-Fernbedienung. Ein Android-Handy im selben WLAN (SoundDesk Remote) steuert Lautstärke, Stummschaltung, Ausgabegeräte und Profile. Standardmäßig aus; eingeschaltet können sich nur per QR-Code gekoppelte Handys verbinden, und nur aus einem privaten Netzwerk.
- Die Datenschutzerklärung und die Nutzungsbedingungen sind in zwölf Sprachen veröffentlicht.
-
v1.6.0
- Automatische Aktualisierung. Eine neue Fassung wird geladen, sobald es sie gibt, und dann werden Sie gefragt, ob installiert werden soll. Standardmäßig ein, in den Einstellungen abschaltbar.
- Eine geladene Datei muss den veröffentlichten Hash und die Signatur bestehen, und die Signatur wird beim Installieren noch einmal geprüft.
-
v1.5.0
- Der Pegel des Tons, der gerade ausgegeben wird - unter der Hauptlautstärke, dem Mikrofon und jeder spielenden App.
- Ein globales Tastenkürzel, das eine App benennt. Mitten in einer Besprechung ein Programm stumm schalten, ohne das Bedienfeld zu öffnen.
- Automatisches Leiserstellen — gibt die gewählte App Ton aus, werden die übrigen leiser und bei Stille wieder lauter.
-
v1.4.0
- Als ausführbare Datei und als ZIP erhältlich. Die Bytes darin sind dieselben, und jede hat ihren eigenen Hash.
- Die App kennt ihre eigene Adresse — zu öffnen über das Infobereichsmenü oder über „Info“ im Bedienfeld.
- Eine einzige Schrift für die ganze Seite, und die Dateien schrumpften von 870 KB auf 225 KB.
-
v1.3.0
- Ein Profil kann jetzt sagen: „dieses Programm folgt dem Standardgerät“.
- Diese Seite erscheint in zwölf Sprachen.