Utilità per l'area di notifica di Windows
Un volume diverso per ogni applicazione,
con un clic.
Chrome al 30%, Teams al 70%, Spotify al 20%. Invece di aprire il mixer del volume ogni volta, un profilo rimette tutto a posto. Due clic dal menu, o un cursore nel pannello.
La finestra che apre l'icona nell'area di notifica. Gli stessi valori si cambiano anche dal menu.
Cosa fa
Quello che facevi nel mixer del volume, in due clic dall'area di notifica.
Volume e silenziamento per applicazione
Raggruppa per applicazione le sessioni che stanno suonando adesso. Un'applicazione con molti processi, come Chrome, resta una sola riga.
Un dispositivo di uscita diverso per applicazione
Il gioco sugli altoparlanti, Discord sulle cuffie. Anche il dispositivo predefinito si cambia dal menu, e il profilo salva il dispositivo insieme ai volumi.
Resta anche chiudendo e riaprendo l'applicazione
Ricorda il volume di ogni applicazione e lo rimette quando quell'applicazione torna a suonare. Anche scollegare e ricollegare un dispositivo, o il risveglio dalla sospensione, riapplica il profilo.
Il microfono nella stessa mano
Il pulsante più urgente durante una riunione. CtrlAltK silenzia e riattiva il microfono.
Il pannello
Modificare i profili, cambiare le scorciatoie, scrivere regole di automazione: tutto dalla finestra. Non c'è mai bisogno di toccare a mano il file delle impostazioni.
Esce solo quello che accendi
Il rapporto d'uso anonimo, il controllo aggiornamenti e gli avvisi dello sviluppatore sono tutto quello che c'è, e tutte e tre sono disattivate. Il pannello si apre solo su 127.0.0.1 e richiede un token creato daccapo a ogni esecuzione.
Profili
Quando cambia la situazione, dovrebbero cambiare tutti i volumi.
Ne sono inclusi tre, e lo stato attuale può essere salvato come nuovo profilo in qualsiasi momento. Il cambio automatico — all'avvio di un'applicazione, al collegamento di un dispositivo o per fascia oraria — è disattivato.
| Profili | Principale | Impostazioni per applicazione |
|---|---|---|
| Work | 72% | Chrome 30% · Teams 70% · Spotify 20% |
| Gaming | 80% | Discord 65% · Spotify 15% · browser silenziato |
| Meeting | 60% | Teams 80% · Zoom 80% · Chrome 20% · Spotify silenziato |
Scorciatoie
Quando le mani sono già sulla tastiera.
Si possono cambiare tutte, e se un altro programma usa già la combinazione te lo dice, invece di fallire in silenzio.
- CtrlAlt↑ Alza il volume principale
- CtrlAlt↓ Abbassa il volume principale
- CtrlAltM Silenzia
- CtrlAltK Silenzia il microfono
- CtrlAltS Pannello
- CtrlAlt1–3 Cambia profilo
Routing per applicazione
Una strada che Windows non ha mai documentato, verificata prima di essere usata.
misurato
«solo questa applicazione sulle cuffie» non ha un'API pubblica. Bisogna chiamare l'interfaccia interna che usa l'app Impostazioni di Windows, Windows.Media.Internal.AudioPolicyConfig, e sia l'identificatore dell'interfaccia sia la disposizione della vtable cambiano da build a build. SoundDesk non le usa a indovinare.
La prima chiamata pericolosa avviene in un processo separato, così l'icona sopravvive a un crash, e dopo che un'applicazione è stata davvero spostata si rilegge con Get; solo quando torna lo stesso dispositivo passa a «verificato». Se la rilettura non coincide, la funzione si disattiva da sola e apre la pagina delle impostazioni di Windows.
| Stato | Prova |
|---|---|
| verified | Un processo è stato spostato davvero e l'endpoint id riletto coincide. Se non sta suonando nulla, l'autodiagnosi si crea una sessione con un flusso silenzioso e verifica contro sé stessa |
| probable | Non è stato possibile creare nulla da rileggere: risulta solo che attivare la factory e chiamare tramite la vtable non ha causato un crash |
| unsupported | L'autodiagnosi è fallita, oppure la chiamata è riuscita e Windows non l'ha applicata → vieni indirizzato alla pagina delle impostazioni |
Sicurezza
Sicuro anche eseguito dalla cartella dei download.
Questi sono i problemi che un eseguibile portatile incontra davvero. Non un elenco astratto: dietro ogni riga ci sono codice e un test.
| Minaccia | Risposta |
|---|---|
| Dirottamento di DLL Una DLL falsa messa accanto all'exe |
Le DLL di sistema si caricano solo per System32 percorso assoluto. All'avvio la cartella dell'exe e la directory di lavoro escono dal percorso di ricerca |
| Occupazione del mutex Un'altra sessione prende prima il nome e blocca l'avvio |
L'oggetto a istanza singola sta nello spazio dei nomi Local\. |
| Iniezione tramite il file delle impostazioni | Un endpoint id arriva a una chiamata COM solo dopo aver superato un controllo con espressione regolare |
| Falsificazione del log Un a capo nel nome di un processo per inserire una riga di log falsa |
Ai nomi di applicazione e dispositivo vengono tolti i caratteri di controllo e applicato un limite di lunghezza |
| Un percorso di avvio automatico senza virgolette | Il valore di Run è sempre un percorso assoluto tra virgolette, e si usa soltanto HKCU. |
| Manomissione del pannello Un altro programma sullo stesso PC, o una pagina web |
127.0.0.1 soltanto, più un token da 256 bit nuovo a ogni esecuzione e un controllo di Host e Origin. Il token diventa un cookie HttpOnly al primo caricamento e sparisce dalla barra degli indirizzi |
Privacy
Esce solo quello che accendi.
I nomi delle applicazioni e le informazioni di sessione vengono trattati su questo PC e da nessun'altra parte, e le impostazioni sono un solo file JSON. Le funzioni che raggiungono la rete sono esattamente tre — rapporto d'uso anonimo, controllo aggiornamenti e avvisi dello sviluppatore — e tutte e tre sono disattivate. Finché non ne accendi una nel pannello, non esce nemmeno una richiesta.
| File delle impostazioni | %APPDATA%\SoundDesk\config.json |
|---|---|
| Log | %APPDATA%\SoundDesk\sounddesk.log |
| Rapporto d'uso anonimo | Disattivato — se acceso, una volta al giorno: un id di installazione casuale, la versione, la build di Windows, la lingua e tre conteggi |
| Controllo aggiornamenti · avvisi dello sviluppatore | Disattivato — se acceso, solo la versione in esecuzione e la lingua. L'id di installazione non viene inviato |
| Quello che non esce mai | Nomi di applicazione · nomi di dispositivo · percorsi di file · il nome dell'account Windows |
| API usate | IMMDeviceEnumerator · IAudioSessionManager2 · ISimpleAudioVolume · IPolicyConfig · AudioPolicyConfig |
| Avvio automatico | HKCU\Software\Microsoft\Windows\CurrentVersion\Run (facoltativo) |
Autodiagnosi
Chiedi all'applicazione stessa se funziona sul tuo PC.
Esegue una per una le proprie funzioni sullo stack audio reale e rimette a posto ciò che ha toccato. Niente che produca suono viene proprio fatto: il volume principale si prova riscrivendo il valore che ha già, il che esercita il percorso di chiamata e nient'altro.
| Comando | Cosa controlla |
|---|---|
| --selftest-audio | Dispositivi · principale · microfono · volume, silenziamento e routing per applicazione · profili · scorciatoie globali. Se non sta suonando nessuna applicazione, il routing si verifica con una sessione silenziosa propria |
| --selftest-panel | Se l'eseguibile pacchettizzato serve davvero il pannello |
| --report | Dispositivi, sessioni e profili in JSON |
Risultato su questo PC
OK Volume per applicazione (firefox.exe 100% → 42% → ripristinato)
OK Silenziamento per applicazione
OK Routing di uscita per applicazione (firefox.exe → ASUS VZ279 → ripristinato)
OK Cambio del dispositivo predefinito · profili · scorciatoie globali
— Microfono (questo PC non ha dispositivi di ingresso)
11 passed, 0 failed, 2 skipped — Windows 10 22H2 build 19045
Ovunque
Nella tua lingua, sul tuo PC.
Le stesse impostazioni a casa e al lavoro, lette nella lingua che usi, richiamate da una macro quando serve.
12 lingue
Segue la lingua di Windows. Puoi anche sceglierne una, e quando lo fai il pannello e il menu cambiano sul momento, senza riavviare.
한국어 · English · 日本語 · 简体中文 · 繁體中文 · Español · Português · Français · Deutsch · Русский · Italiano · Tiếng Việt
Le stesse impostazioni a casa e al lavoro
Esporta profili, scorciatoie e regole in un file e importalo su un altro PC. I dispositivi vengono abbinati per nome: le stesse cuffie hanno un id diverso su ogni PC, quindi copiare il file e basta farebbe sparire il routing in silenzio. Dei dispositivi che questo PC non ha ti viene detto il nome.
Richiamarlo da una macro
Usalo così com'è da un pulsante dello Stream Deck o da una riga di AutoHotkey. Funziona che l'icona sia presente o no, e non ne apre una seconda. Codice di uscita 0 se qualcosa è cambiato, 1 se non ha trovato nulla.
SoundDesk.exe --set-app chrome.exe=25
SoundDesk.exe --profile Gaming
SoundDesk.exe --list apps
Installazione
Un file. Nessun installer.
SoundDesk.exe dove preferisci ed eseguilo: comparirà un'icona nell'area di notifica. Per rimuoverlo, cancella il file e la cartella delle impostazioni. Python non serve.