Как автоматически отключить звук при отключении наушников в 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 минут и не знаю, как раньше жила без него.

Leave a Comment

Заставить Windows 7 запомнить положение и размер окна проводника

Заставить Windows 7 запомнить положение и размер окна проводника

По словам некоторых пользователей на различных форумах, Windows 7 не может запомнить положение и размер окна после его повторного открытия. Этого не происходит с

Перестрелка: Dropbox против SugarSync

Перестрелка: Dropbox против SugarSync

Резервное копирование файлов в облаке стало настолько интуитивно понятным, что это действительно повышает производительность. Простое в использовании автоматическое

Лучшие загрузчики YouTube для Windows 11

Лучшие загрузчики YouTube для Windows 11

Мы составили рейтинг 7 лучших загрузчиков видео с YouTube для компьютеров на базе Windows 11, чтобы вы могли наслаждаться видео офлайн.

Как ускорить процесс завершения работы Windows

Как ускорить процесс завершения работы Windows

Вас раздражает, что Windows XP слишком долго выключается, когда вы куда-то спешите? Если это как раз то, что вам нужно.

Как перенести избранное реестра на другой компьютер

Как перенести избранное реестра на другой компьютер

Вы снова и снова обращаетесь к одному и тому же разделу реестра с помощью редактора реестра и теперь хотите перенести его на другой компьютер? В Windows

Windows 7 Process Explorer — загрузите два лучших

Windows 7 Process Explorer — загрузите два лучших

В Windows 7 есть немало улучшений, с которыми согласится большинство. Но не все функции были улучшены, и нельзя сказать, что вся ОС была построена на…

OoVoo: кроссплатформенное приложение для бесплатного текстового, голосового и видеочата

OoVoo: кроссплатформенное приложение для бесплатного текстового, голосового и видеочата

Откройте для себя ooVoo: кроссплатформенный инструмент общения для голосовых вызовов, видеозвонков и обмена мгновенными сообщениями на Windows, Mac, Android и iOS.

Текст в речь WAV: транскрибируйте текст в речь и сохраните его в файл WAV

Текст в речь WAV: транскрибируйте текст в речь и сохраните его в файл WAV

Преобразуйте текст в высококачественные аудиофайлы WAV с помощью функции преобразования текста в речь WAV. Настройте битрейт, громкость и скорость воспроизведения для плавного воспроизведения.

Как добавить края к вашим фотографиям в Photoshop [Урок]

Как добавить края к вашим фотографиям в Photoshop [Урок]

Ранее мы рассмотрели совет по добавлению рамок к фотографиям. В этом уроке мы рассмотрим, как добавить к рамке больше деталей, то есть добавить интересные и…

SpeedOut проверяет скорость чтения/записи USB и внешнего жесткого диска

SpeedOut проверяет скорость чтения/записи USB и внешнего жесткого диска

Хотите узнать точную скорость передачи данных на вашем USB-накопителе или внешнем жёстком диске? SpeedOut — это простая программа, которая поможет вам определить скорость передачи данных.