Come disattivare automaticamente laudio quando le cuffie sono scollegate su Windows 10

Windows 10 può mantenere profili audio separati per diversi dispositivi audio. Per ogni dispositivo audio che colleghi, puoi impostare un livello di volume diverso e quando il dispositivo è connesso, il volume si regolerà automaticamente. Naturalmente, nessuno tiene sempre disattivato un dispositivo audio. Aumenteranno o diminuiranno il volume ma nessuno abitualmente disattiva un dispositivo audio.

Se utilizzi un paio di cuffie con il desktop e spesso devi scollegarle, puoi utilizzare un piccolo script PowerShell che disattiverà automaticamente l'audio quando si scollegano le cuffie.

Questo è qualcosa che fanno i telefoni cellulari, ad esempio, quando scolleghi le cuffie, la musica si interrompe automaticamente. La logica dietro questo è che hai finito di ascoltare la musica o hai rimosso accidentalmente le cuffie e hai bisogno di un modo rapido per spegnerle. La sceneggiatura è stata fondamentalmente scritta su quello stesso principio da  Prateek Singh di GEEKEEFY .

Come disattivare automaticamente laudio quando le cuffie sono scollegate su Windows 10

Disattiva automaticamente l'audio

Apri Blocco note e incolla quanto segue;

[cmdletbinding()] Param() #Aggiunta di definizioni per l'accesso all'API Audio Add-Type -TypeDefinition @' using System.Runtime.InteropServices; [Guid("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interfaccia IAudioEndpointVolume { // f(), g(), ... sono slot del metodo COM inutilizzati. Definisci questi se ti interessa int f(); int g(); int h(); int io(); int SetMasterVolumeLevelScalar(float fLevel, System.Guid pguidEventContext); int j(); int GetMasterVolumeLevelScalar(out float pfLevel); int k(); intl(); int m(); int n(); int SetMute([MarshalAs(UnmanagedType.Bool)] bool bMute, System.Guid pguidEventContext); int GetMute(out bool pbMute); } [Guid("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interfaccia IMMDevice { int Activate(ref System.Guid id, int clsCtx, intactivationParams, out IAudioEndpointVolume aev); } [Guid("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] interfaccia IMMDeviceEnumerator { int f(); // Inutilizzato int GetDefaultAudioEndpoint(int dataFlow, int role, out IMMDevice endpoint); } [ComImport, Guid("BCDE0395-E52F-467C-8E3D-C4579291692E")] class MMDeviceEnumeratorComObject { } public class Audio { static IAudioEndpointVolume Vol() { var enumerator = new MMDeviceEnumeratorComObject() as IMMDeviceEnumerator; IMMDevice dev = null; Marshal.ThrowExceptionForHR(enumerator.GetDefaultAudioEndpoint(/*eRender*/ 0, /*eMultimedia*/ 1, out dev)); IAudioEndpointVolume epv = null; var epvid = typeof(IAudioEndpointVolume).GUID; Marshal.ThrowExceptionForHR(dev.Activate(ref epvid, /*CLSCTX_ALL*/ 23, 0, out epv)); ritorno epv; } public static float Volume { get {float v = -1; Marshal.ThrowExceptionForHR(Vol().GetMasterVolumeLevelScalar(out v)); return v;} set {Marshal.ThrowExceptionForHR(Vol().SetMasterVolumeLevelScalar(value, System.Guid.Empty));} } public static bool Mute { get { bool mute; Marshal.ThrowExceptionForHR(Vol().GetMute(out mute)); torna muto; } set { Marshal.ThrowExceptionForHR(Vol().SetMute(value, System.Guid.Empty)); } } } '@ -Verbose While($true) { #Pulisci tutti gli eventi nella sessione corrente poiché si trova in un ciclo infinito, per ricominciare da capo quando inizia il ciclo Get-Event | Remove-Event -ErrorAction SilentlyContinue #Registrazione dell'evento e attesa per l'attivazione dell'evento Register-WmiEvent -Class Win32_DeviceChangeEvent Wait-Event -OutVariable Event |Out-Null $EventType = $Event.sourceargs. nuovo evento | ` Ordina-oggetto TIME_CREATED -Decrescente | ` Select-Object EventType -ExpandProperty EventType -First 1 #Logica condizionale da gestire, quando disattivare/riattivare l'audio della macchina utilizzando l'API audio If($EventType -eq 3) { [Audio]::Mute = $true Write-Verbose "Muted [$((Get-Date).tostring())]" } elseif($EventType -eq 2 -and [Audio]::Mute -eq $true) { [Audio]::Mute = $false Write-Verbose " Riattivato [$((Get-Date).tostring())]" } }

Salvalo con l'estensione del file PS1. Assicurati di selezionare "Tutti i file" dal menu a discesa del tipo di file. Dai al file un nome che ti dirà a colpo d'occhio cosa fa. Salvalo in un posto in cui è improbabile che lo elimini per sbaglio, ma anche dove puoi trovarlo facilmente se necessario.

Esecuzione dello script

PowerShell non può semplicemente eseguire automaticamente uno script. C'è una misura di sicurezza integrata che gli impedisce di farlo, ma c'è un modo per aggirarlo. Abbiamo un articolo dettagliato su come puoi fare proprio questo. Segui le istruzioni per eseguire automaticamente lo script PowerShell appena creato e usa un'attività pianificata per avviare lo script ogni volta che avvii il PC.

In alternativa, puoi eseguire manualmente lo script all'avvio del sistema. Lo sto usando da meno di 30 minuti e non so come facevo a vivere senza prima.

Leave a Comment

BluRip: convertitore da Bluray a MKV

BluRip: convertitore da Bluray a MKV

Il formato MKV o Matroska è un formato contenitore standard aperto e gratuito che può contenere un numero illimitato di tracce video, audio e sottotitoli. Copia di dischi Blu-ray

Modo semplice per convertire DVD e Blu-ray in formato MKV

Modo semplice per convertire DVD e Blu-ray in formato MKV

In precedenza, abbiamo trattato una guida su BluRip, un convertitore open source da Blu-ray a MKV. Grazie al nostro lettore, ericcov, che ce l'ha segnalato, oggi abbiamo una

Ping di più indirizzi IP con intervallo di indirizzi IP Pinger

Ping di più indirizzi IP con intervallo di indirizzi IP Pinger

L'analisi di rete è fondamentale. Gli ingegneri di rete monitorano sempre la propria rete per tenere traccia di tutti i computer connessi. In passato,

TypingAid – Utilità di completamento automatico del testo per Windows

TypingAid – Utilità di completamento automatico del testo per Windows

TypingAid potrebbe sembrare uno strumento che aiuta i principianti a imparare a digitare, ma in realtà è uno strumento di completamento automatico portatile che aiuta

Apri e visualizza qualsiasi file con Universal Viewer [Windows]

Apri e visualizza qualsiasi file con Universal Viewer [Windows]

I visualizzatori di file sono oggi ampiamente disponibili, con molte ottime soluzioni che offrono una vasta gamma di funzioni. Forse uno dei più popolari in circolazione

Modifica le proprietà dei documenti PDF con PDF Info

Modifica le proprietà dei documenti PDF con PDF Info

PDF Info è uno strumento che consente di modificare le proprietà dei file PDF. È possibile modificare autore, titolo, argomento, parole chiave, creatore, produttore e PDF.

Come abilitare la barra di stato del Blocco note in Windows 7

Come abilitare la barra di stato del Blocco note in Windows 7

Per impostazione predefinita, il Blocco note integrato in Windows 7 non mostra la barra di stato (nella parte inferiore della finestra). Tuttavia, a volte è necessario conoscere le nozioni di base.

Mostra i LED della tastiera nella barra delle applicazioni di Windows

Mostra i LED della tastiera nella barra delle applicazioni di Windows

Keybord Leds è stato progettato pensando agli utenti che non hanno LED sulla tastiera o che sono troppo piccoli per poterli utilizzare. Visualizza i LED della tastiera nel sistema.

Swiff Player: riproduce file SWF, alternativa ad Adobe Flash Debugger

Swiff Player: riproduce file SWF, alternativa ad Adobe Flash Debugger

Scopri Swiff Player: uno strumento gratuito e facile da usare per eseguire animazioni SWF e applet applicativi senza la suite Adobe Flash.

WindowMenuPlus aggiunge 9 utili opzioni al menu della barra del titolo dellapp

WindowMenuPlus aggiunge 9 utili opzioni al menu della barra del titolo dellapp

Migliora la tua esperienza Windows con Moo0 WindowMenuPlus. Accedi a 9 potenti opzioni dal menu della barra del titolo di qualsiasi applicazione.