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

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.


Come far funzionare Python e Pip su Windows

Come far funzionare Python e Pip su Windows

Hai bisogno di far funzionare un interprete Python sul tuo PC Windows 10 o 11? Scopri come far funzionare Python su Windows con questo semplice tutorial.

Come bloccare gli annunci in Chrome senza unestensione

Come bloccare gli annunci in Chrome senza unestensione

Google sta cambiando il browser Chrome per rendere più difficile il blocco degli annunci in Windows. Con Adguard, puoi aggirare questi cambiamenti.

Le basi di sopravvivenza e le case dei sopravvissuti sono la stessa cosa in Minecraft

Le basi di sopravvivenza e le case dei sopravvissuti sono la stessa cosa in Minecraft

Quando inizi a giocare a Minecraft o inizi un nuovo mondo in Minecraft, una delle prime cose che farai è costruire una piccola casa. Non lo sarà

Accedi in remoto a Windows Server con AnyDesk

Accedi in remoto a Windows Server con AnyDesk

Vuoi un modo semplice per connetterti al tuo server Windows tramite Internet o la tua rete domestica? Scopri come connetterti con Anydesk.

Come accedere al BIOS su Windows 11: 3 semplici metodi

Come accedere al BIOS su Windows 11: 3 semplici metodi

Hai bisogno di aiuto per accedere al BIOS del tuo PC Windows 11? Qui troverai tre diversi metodi per farlo sul tuo PC

Come collegare gli Airpod su Windows 11

Come collegare gli Airpod su Windows 11

Puoi connettere i tuoi Airpods al tuo PC Windows, in particolare uno in esecuzione su Windows 11. Fai clic qui per un breve tutorial su come procedere

Come chiudere il laptop e utilizzare il monitor: 2 metodi di lavoro

Come chiudere il laptop e utilizzare il monitor: 2 metodi di lavoro

Scopri due metodi di lavoro per chiudere il tuo laptop e utilizzare il monitor su Windows per aumentare la tua produttività e risparmiare tempo.

Configura un server FTP FileZilla su Windows Server

Configura un server FTP FileZilla su Windows Server

Hai bisogno di configurare un server FTP sul tuo sistema Windows Server per trasferimenti rapidi di file? FileZilla Server è la strada da percorrere.

Quali nuove funzionalità sono disponibili in iOS 15.4?

Quali nuove funzionalità sono disponibili in iOS 15.4?

Apple ha appena rilasciato una versione aggiornata di iOS ed è ricca di nuove fantastiche funzionalità! Conosci alcuni dei più importanti.

Ospita un server musicale Subsonic su Windows Server

Ospita un server musicale Subsonic su Windows Server

Vuoi il tuo Spotify o Apple Music privato? Installa oggi il server musicale Subsonic per riprodurre in streaming i tuoi brani sulla rete.