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.

Leave a Comment

Limpar arquivo de texto com o Text Cleanser

Limpar arquivo de texto com o Text Cleanser

Você já recebeu um documento ou arquivo de texto contendo caracteres desnecessários e redundantes? O texto contém muitos asteriscos, hifens, espaços vazios, etc.?

Caixa de pesquisa rápida do Google na barra de tarefas do Windows 7

Caixa de pesquisa rápida do Google na barra de tarefas do Windows 7

Muitas pessoas perguntaram sobre o pequeno ícone retangular do Google ao lado do Windows 7 Start Orb na minha barra de tarefas que finalmente decidi publicar isso

Correção para uTorrent no Windows 7

Correção para uTorrent no Windows 7

O uTorrent é de longe o cliente de desktop mais popular para baixar torrents. Embora funcione perfeitamente para mim no Windows 7, algumas pessoas estão tendo

2 Ferramentas Incríveis Que Lembram Você de Relaxar os Olhos

2 Ferramentas Incríveis Que Lembram Você de Relaxar os Olhos

Todo mundo precisa fazer pausas frequentes enquanto trabalha no computador, pois não fazer pausas aumenta a chance de seus olhos saltarem (ok, não saltarem).

82 utilitários essenciais de código aberto para Windows em um só lugar

82 utilitários essenciais de código aberto para Windows em um só lugar

Pode haver vários aplicativos com os quais você, como usuário comum, esteja bastante acostumado. A maioria das ferramentas gratuitas mais usadas exige uma instalação tediosa,

Belvedere – Ferramenta de gerenciamento automatizado de arquivos para Windows

Belvedere – Ferramenta de gerenciamento automatizado de arquivos para Windows

Tenho boas lembranças da minha infância do seriado de TV Mr.Belvedere, bem, a ferramenta que discutiremos recebeu o nome deste seriado de TV.

Mostrar arquivos e pastas ocultos na unidade USB

Mostrar arquivos e pastas ocultos na unidade USB

Para visualizar arquivos e pastas ocultos na unidade USB, basta navegar até Opções de Pasta > Exibir > e selecionar Mostrar Arquivos e Pastas Ocultos. Mas isso

Como salvar configurações de áudio e equalizador no VLC Player

Como salvar configurações de áudio e equalizador no VLC Player

O VLC é o reprodutor de mídia preferido por usuários avançados e amadores. Configurar as configurações e opções básicas é fácil, mas é preciso se aprofundar

Meu Índice de Fotos: Organizador de Fotos de Código Aberto para Windows

Meu Índice de Fotos: Organizador de Fotos de Código Aberto para Windows

O Picasa é uma ótima ferramenta de organização de fotos, alguns podem discordar. Se você usa o sistema operacional Windows, a Galeria de Fotos do Windows Live também é uma boa alternativa. Mas

Defina um papel de parede/plano de fundo diferente para cada monitor na configuração de vários monitores

Defina um papel de parede/plano de fundo diferente para cada monitor na configuração de vários monitores

Cansado do mesmo papel de parede em todos os monitores? Use o Wallmaster para definir papéis de parede diferentes para cada monitor na sua configuração de vários monitores.