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

Eseguire il backup del browser Edge legacy prima di aggiornare a Chromium Edge

Eseguire il backup del browser Edge legacy prima di aggiornare a Chromium Edge

Non perdere il tuo browser Edge legacy quando aggiorni a Chromium Edge. Segui la nostra guida per eseguire il backup e mantenere entrambi i browser attivi contemporaneamente.

Cdex – Copia CD audio in formato Mp3 o WAV

Cdex – Copia CD audio in formato Mp3 o WAV

Cdex è uno strumento open source gratuito che può estrarre i dati da un CD audio e salvarli in formato wav o mp3. È anche possibile estrarre i dati dal CD audio.

Cosè la modalità ospite di Windows 7 e come attivarla?

Cosè la modalità ospite di Windows 7 e come attivarla?

Cos'è la modalità ospite Ti è mai successo che un amico o un collega, mentre utilizzava il tuo computer, abbia cancellato un file importante o modificato un sistema?

Scarica qualsiasi cosa da Netflix senza restrizioni su Windows 10

Scarica qualsiasi cosa da Netflix senza restrizioni su Windows 10

Scarica qualsiasi contenuto da Netflix e guardalo offline con TunePat. Nessuna restrizione, nessun limite di qualità SD.

Disabilita i prompt UAC per determinate app di Windows con ElevatedShortcut

Disabilita i prompt UAC per determinate app di Windows con ElevatedShortcut

I prompt UAC che compaiono quando si esegue un'app possono diventare piuttosto fastidiosi se si ha a che fare costantemente con essi. Per chi non ha familiarità con UAC o

Dividi un file di grandi dimensioni in parti più piccole e uniscile rapidamente

Dividi un file di grandi dimensioni in parti più piccole e uniscile rapidamente

Cryogenic è un piccolo ma potente strumento portatile open source, che consente di dividere qualsiasi file di grandi dimensioni in blocchi specifici per una condivisione più semplice e veloce.

Fai in modo che Windows 7 ricordi la posizione e le dimensioni di Esplora risorse

Fai in modo che Windows 7 ricordi la posizione e le dimensioni di Esplora risorse

Secondo alcuni utenti in vari forum, Windows 7 non riesce a ricordare la posizione e le dimensioni della finestra dopo averla riaperta. Questo non è il caso di

Confronto: Dropbox contro SugarSync

Confronto: Dropbox contro SugarSync

Il backup dei file nel cloud è diventato un'attività sufficientemente intuitiva da migliorare effettivamente la produttività. Funzionalità automatiche facili da usare

I migliori downloader di YouTube per Windows 11

I migliori downloader di YouTube per Windows 11

Abbiamo classificato i 7 migliori downloader di video di YouTube per computer Windows 11, così potrai goderti i video offline.

Come velocizzare il processo di spegnimento di Windows

Come velocizzare il processo di spegnimento di Windows

Ti dà fastidio che Windows XP impieghi troppo tempo a spegnersi quando sei di fretta? Se questa è la situazione che stai cercando,