Como silenciar automaticamente o som quando os fones de ouvido são desconectados no Windows 10

Como silenciar automaticamente o som quando os fones de ouvido são desconectados no Windows 10

O Windows 10 pode manter perfis de áudio separados para diferentes dispositivos de áudio. Para cada dispositivo de áudio conectado, você pode definir um nível de volume diferente e, quando o dispositivo for conectado, o volume será ajustado automaticamente. Claro, ninguém mantém um dispositivo de áudio mudo o tempo todo. Eles irão aumentar ou diminuir o volume, mas ninguém costuma silenciar um dispositivo de áudio.

Se você usa um par de fones de ouvido com sua área de trabalho e frequentemente precisa desconectá-los, pode usar um pequeno script do PowerShell que silenciará automaticamente o som quando você desconectar os fones de ouvido.

Isso é algo que os telefones celulares fazem, ou seja, quando você desconecta os fones de ouvido, a música para automaticamente. A lógica por trás disso é que você acabou de ouvir música ou removeu acidentalmente os fones de ouvido e precisa de uma maneira rápida de desligá-los. O script foi basicamente escrito no mesmo princípio por  Prateek Singh de GEEKEEFY .

Como silenciar automaticamente o som quando os fones de ouvido são desconectados no Windows 10

Silenciar automaticamente o som

Abra o Bloco de notas e cole o seguinte;

[cmdletbinding ()] Param () #Adicionar definições para acessar a API de áudio Add-Type -TypeDefinition @ 'using System.Runtime.InteropServices; [Guid ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] interface IAudioEndpointVolume {// f (), g (), ... são slots de método COM não utilizados. Defina-os se você se importar int f (); int g (); int h (); int i (); int SetMasterVolumeLevelScalar (float fLevel, System.Guid pguidEventContext); int j (); int GetMasterVolumeLevelScalar (out float pfLevel); int k (); int l (); 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)] interface IMMDevice {int Activate (ref System.Guid id, int clsCtx, int activationParams, out IAudioEndpointVolume aev); } [Guid ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] interface IMMDeviceEnumerator {int f (); // Não utilizado int GetDefaultAudioEndpoint (int dataFlow, int role, out IMMDevice endpoint); } [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] classe MMDeviceEnumeratorComObject {} classe pública Audio {estático IAudioEndpointVolume Vol () {var enumerator = new MMDeviceEnumeratorComObject () como IMMDeviceEnumeratorComObject (); 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)); return epv; } Volume float público estático {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 (sem som)); retornar mudo; } definir {Marshal.ThrowExceptionForHR (Vol (). SetMute (valor, System.Guid.Empty)); }}} '@ -Verbose While ($ true) {#Limpa todos os eventos na sessão atual, pois está em um loop infinito, para fazer um novo início quando o loop começar Get-Event | Remove-Event -ErrorAction SilentlyContinue #Registering the Event and Waiting for event to be trigger-WmiEvent -Class Win32_DeviceChangeEvent Wait-Event -OutVariable Event | Out-Null $ EventType = $ Event.sourceargs. newevent | `Sort-Object TIME_CREATED -Descending | `Select-Object EventType -ExpandProperty EventType -First 1 #Lógica condicional a ser tratada, Quando silenciar / ativar o som da máquina usando a API de áudio If ($ EventType -eq 3) {[Audio] :: Mute = $ true Write-Verbose" Mudo [$ ((Get-Date) .tostring ())] "} elseif ($ EventType -eq 2 -and [Audio] :: Mute -eq $ true) {[Audio] :: Mute = $ false Write-Verbose" UnMuted [$ ((Get-Date) .tostring ())] "}}

Salve-o com a extensão de arquivo PS1. Certifique-se de selecionar 'Todos os arquivos' no menu suspenso de tipo de arquivo. Dê ao arquivo um nome que mostre rapidamente o que ele faz. Salve-o em algum lugar do qual provavelmente não será possível excluí-lo acidentalmente, mas também onde possa encontrá-lo facilmente se precisar.

Executando o Script

O PowerShell não pode simplesmente executar um script automaticamente. Há uma medida de segurança embutida que impede isso, mas há uma maneira de contornar isso. Temos um artigo detalhado sobre como você pode fazer exatamente isso. Siga as instruções para executar automaticamente o script do PowerShell que você acabou de criar e use uma tarefa agendada para iniciar o script sempre que inicializar o PC.

Como alternativa, você pode executar o script manualmente ao inicializar o sistema. Estou usando há menos de 30 minutos e não sei como vivia sem ele antes.


Como fazer Python e Pip funcionarem no Windows

Como fazer Python e Pip funcionarem no Windows

Precisa que um interpretador Python funcione em seu PC com Windows 10 ou 11? Aprenda como fazer o Python funcionar no Windows com este tutorial fácil.

Como bloquear anúncios no Chrome sem uma extensão

Como bloquear anúncios no Chrome sem uma extensão

O Google está mudando o navegador Chrome para dificultar o bloqueio de anúncios no Windows. Com Adguard, você pode contornar essas mudanças.

Bases de sobrevivência e casas de sobreviventes são a mesma coisa no Minecraft

Bases de sobrevivência e casas de sobreviventes são a mesma coisa no Minecraft

Quando você começa a jogar Minecraft ou inicia um novo mundo no Minecraft, uma das primeiras coisas que você fará é construir uma pequena casa. não vai ser

Acesse remotamente o Windows Server com AnyDesk

Acesse remotamente o Windows Server com AnyDesk

Quer uma maneira fácil de se conectar ao seu Windows Server pela Internet ou pela sua rede doméstica? Saiba como se conectar com o Anydesk.

Como entrar no BIOS no Windows 11: 3 métodos fáceis

Como entrar no BIOS no Windows 11: 3 métodos fáceis

Precisa de ajuda para acessar o BIOS do seu PC com Windows 11? Você encontrará aqui três métodos diferentes para fazer isso no seu PC

Como conectar Airpods no Windows 11

Como conectar Airpods no Windows 11

Você pode conectar seus Airpods ao seu PC com Windows, especialmente um executando o Windows 11. Clique aqui para obter um breve tutorial sobre como fazer isso

Como fechar o laptop e usar o monitor: 2 métodos de trabalho

Como fechar o laptop e usar o monitor: 2 métodos de trabalho

Aprenda dois métodos de trabalho para fechar seu laptop e usar o monitor no Windows para aumentar sua produtividade e economizar tempo.

Configurar um servidor FTP FileZilla no Windows Server

Configurar um servidor FTP FileZilla no Windows Server

Precisa configurar um servidor FTP em seu sistema Windows Server para transferências rápidas de arquivos? FileZilla Server é o caminho certo.

Quais novos recursos estão disponíveis no iOS 15.4?

Quais novos recursos estão disponíveis no iOS 15.4?

A Apple acaba de lançar uma versão atualizada do iOS - e está repleta de novos recursos interessantes! Conheça alguns dos mais destacados.

Hospede um servidor de música Subsonic no Windows Server

Hospede um servidor de música Subsonic no Windows Server

Quer seu próprio Spotify ou Apple Music privado? Instale o servidor de música Subsonic hoje para transmitir suas próprias músicas pela rede.