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

Оставить комментарий

Как бесплатно скачать и установить VMware Workstation Pro (25H2) на Windows 11

Как бесплатно скачать и установить VMware Workstation Pro (25H2) на Windows 11

Чтобы бесплатно скачать VMware Workstation Pro, вам необходимо зарегистрироваться на сайте Broadcom, загрузить установщик и следовать этим инструкциям.

Как проверить температуру SSD и HDD в Windows 11

Как проверить температуру SSD и HDD в Windows 11

Чтобы предотвратить перегрев и потерю данных, проверьте температуру SSD и жесткого диска в Windows 11 с помощью настроек, PowerShell или CrystalDiskInfo.

Что такое ViveTool и как включить скрытые функции в Windows 11?

Что такое ViveTool и как включить скрытые функции в Windows 11?

Чтобы включить скрытые функции в Windows 11 (для участников программы Insider Previews), откройте командную строку (от имени администратора) и выполните команду vivetool /enable /id:ENABLE-FEATURE-ID

Инструмент создания установочных носителей Windows 11 перестал работать как раз в тот момент, когда поддержка Windows 10 подошла к концу.

Инструмент создания установочных носителей Windows 11 перестал работать как раз в тот момент, когда поддержка Windows 10 подошла к концу.

Microsoft подтвердила наличие ошибки, препятствующей работе инструмента создания установочного носителя (Media Creation Tool) в Windows 10, но вот как можно безопасно загрузить ISO-образ Windows 11 для обновления.

Как скачать ISO-файл Windows 11 24H2 после выхода версии 25H2

Как скачать ISO-файл Windows 11 24H2 после выхода версии 25H2

Чтобы загрузить образ Windows 11 24H2 ISO после выхода версии 25H2, используйте UUP Dump для создания пользовательского ISO-образа, а затем Rufus для создания загрузочного USB-накопителя.

Как использовать RyTuneX для отключения телеметрии (повышение конфиденциальности) в Windows 11

Как использовать RyTuneX для отключения телеметрии (повышение конфиденциальности) в Windows 11

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

Как отключить телеметрию в Windows 11

Как отключить телеметрию в Windows 11

Предотвратите отправку Windows 11 ненужных данных в Microsoft. Ограничьте телеметрию и защитите свою конфиденциальность, выполнив эти простые шаги.

Как установить гостевые дополнения для Windows 11 (или 10) в VirtualBox

Как установить гостевые дополнения для Windows 11 (или 10) в VirtualBox

После создания виртуальной машины необходимо установить VirtualBox Guest Additions на Windows 10 для повышения удобства использования и производительности — вот как это сделать.

Как включить новые функции в обновлении Windows 11 от июля 2025 года (KB5062553)

Как включить новые функции в обновлении Windows 11 от июля 2025 года (KB5062553)

Для раннего доступа используйте ViVeTool, чтобы вручную включить новые функции в обновлении Windows 11 24H2 от июля 2025 года (сборка 26100.4652, KB5062553).

Как включить удаленный рабочий стол с помощью командной строки в Windows 10

Как включить удаленный рабочий стол с помощью командной строки в Windows 10

В Windows 10 можно быстро включить или отключить удаленный рабочий стол и брандмауэр с помощью командной строки или PowerShell. Вот как это сделать.