Как автоматически отключить звук при отключении наушников в Windows 10

Как автоматически отключить звук при отключении наушников в Windows 10

Windows 10 может хранить отдельные аудиопрофили для разных аудиоустройств. Для каждого подключаемого аудиоустройства вы можете установить разный уровень громкости, и когда устройство подключено, громкость будет регулироваться автоматически. Конечно, никто не оставляет аудиоустройство постоянно отключенным. Они будут увеличивать или уменьшать громкость, но обычно никто не отключает звук на аудиоустройстве.

Если вы используете пару наушников со своим настольным компьютером и вам часто приходится их отключать, вы можете использовать небольшой скрипт PowerShell, который автоматически отключает звук при отключении наушников.

Это то, что делают мобильные телефоны, то есть когда вы отключаете наушники, музыка останавливается автоматически. Логика заключается в том, что вы либо закончили слушать музыку, либо случайно сняли наушники, и вам нужен быстрый способ их выключить. Сценарий в основном был написан по тому же принципу  Пратик Сингхом из GEEKEEFY .

Как автоматически отключить звук при отключении наушников в Windows 10

Автоматическое отключение звука

Откройте Блокнот и вставьте следующее:

[cmdletbinding ()] Param () # Добавление определений для доступа к Audio API Add-Type -TypeDefinition @ 'using System.Runtime.InteropServices; [Guid ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] interface IAudioEndpointVolume {// f (), g (), ... - неиспользуемые слоты COM-методов. Определите их, если вам не все равно int f (); int g (); int h (); int я (); 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 activateParams, out IAudioEndpointVolume aev); } [Guid ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType.InterfaceIsIUnknown)] интерфейс IMMDeviceEnumerator {int f (); // Не используется int GetDefaultAudioEndpoint (int dataFlow, int role, out конечная точка IMMDevice); } [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] класс MMDeviceEnumeratorComObject {} открытый класс Audio {static IAudioEndpointVolume Vol () {var enumerator = new MMDeviceEnumeratorComObject () as IMMDeviceNumeratorComObject () as 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; } публичный статический объем с плавающей запятой {get {float v = -1; Marshal.ThrowExceptionForHR (Vol (). GetMasterVolumeLevelScalar (вне v)); return v;} set {Marshal.ThrowExceptionForHR (Vol (). SetMasterVolumeLevelScalar (value, System.Guid.Empty));}} public static bool Mute {get {bool mute; Marshal.ThrowExceptionForHR (Vol (). GetMute (отключение звука)); вернуть без звука; } установить {Marshal.ThrowExceptionForHR (Vol (). SetMute (значение, System.Guid.Empty)); }}} '@ -Verbose While ($ true) {# Очистить все события в текущем сеансе с момента его нахождения в бесконечном цикле, чтобы начать все заново, когда цикл начинается Get-Event | Remove-Event -ErrorAction SilentlyContinue # Регистрация события и ожидание запуска события Register-WmiEvent -Class Win32_DeviceChangeEvent Wait-Event -OutVariable Event | Out-Null $ EventType = $ Event.sourceargs. newevent | `Sort-Object TIME_CREATED -Убывание | `Select-Object EventType -ExpandProperty EventType -First 1 # Условная логика для обработки, когда отключать / включать компьютер с помощью Audio API 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" Без звука [$ ((Get-Date) .tostring ())] "}}

Сохраните его с расширением файла PS1. Убедитесь, что вы выбрали «Все файлы» в раскрывающемся списке типов файлов. Дайте файлу имя, которое сразу расскажет вам, что он делает. Сохраните его в том месте, где вы вряд ли удалите его случайно, но также и там, где вы можете легко его найти, если вам нужно.

Запуск сценария

PowerShell не может просто автоматически запускать скрипт. Есть встроенная мера безопасности, которая предотвращает это, но есть способ обойти это. У нас есть подробная статья о том, как это сделать. Следуйте инструкциям по автоматическому запуску только что созданного сценария PowerShell и используйте запланированное задание для запуска сценария при каждой загрузке компьютера.

Кроме того, вы можете вручную запустить сценарий при загрузке системы. Пользуюсь им меньше 30 минут и не знаю, как раньше жила без него.


Как заставить Python и Pip работать в Windows

Как заставить Python и Pip работать в Windows

Вам нужен интерпретатор Python, работающий на вашем ПК с Windows 10 или 11? Из этого простого руководства вы узнаете, как заставить Python работать в Windows.

Как заблокировать рекламу в Chrome без расширения

Как заблокировать рекламу в Chrome без расширения

Google меняет браузер Chrome, чтобы было сложнее блокировать рекламу в Windows. С Adguard вы можете обойти эти изменения.

Являются ли базы выживания и дома выживших одним и тем же в Minecraft?

Являются ли базы выживания и дома выживших одним и тем же в Minecraft?

Когда вы начнете играть в Minecraft или начнете новый мир в Minecraft, первое, что вы сделаете, это построите небольшой дом. Это не будет

Удаленный доступ к Windows Server с помощью AnyDesk

Удаленный доступ к Windows Server с помощью AnyDesk

Хотите простой способ подключения к Windows Server через Интернет или домашнюю сеть? Узнайте, как подключиться к Anydesk.

Как войти в BIOS в Windows 11: 3 простых способа

Как войти в BIOS в Windows 11: 3 простых способа

Нужна помощь, чтобы войти в BIOS вашего ПК с Windows 11? Здесь вы найдете три разных способа сделать это на своем ПК.

Как подключить Airpods в Windows 11

Как подключить Airpods в Windows 11

Вы можете подключить свои Airpods к ПК с Windows, особенно к тому, который работает на Windows 11. Нажмите здесь, чтобы прочитать краткое руководство о том, как это сделать.

Как закрыть ноутбук и использовать монитор: 2 метода работы

Как закрыть ноутбук и использовать монитор: 2 метода работы

Изучите два рабочих метода закрытия ноутбука и использования монитора в Windows, чтобы повысить производительность и сэкономить время.

Настройте FTP-сервер FileZilla на Windows Server

Настройте FTP-сервер FileZilla на Windows Server

Нужно настроить FTP-сервер в системе Windows Server для быстрой передачи файлов? FileZilla Server — это то, что вам нужно.

Какие новые функции доступны в iOS 15.4?

Какие новые функции доступны в iOS 15.4?

Apple только что выпустила обновленную версию iOS — и она полна крутых новых функций! Познакомьтесь с некоторыми из самых известных из них.

Разместите музыкальный сервер Subsonic на Windows Server

Разместите музыкальный сервер Subsonic на Windows Server

Хотите свой собственный Spotify или Apple Music? Установите музыкальный сервер Subsonic сегодня, чтобы транслировать свои собственные мелодии по сети.