Как отключить звук при выключении дисплея?

Как отключить звук при выключении дисплея?

Я хотел бы отключить звук (windows 10) при выключении монитора. В настоящее время у меня есть настройки питания, чтобы выключать монитор через 15 минут. Я хотел бы, чтобы звук также выключался тогда.

Я не уверен, что в Windows есть встроенный способ сделать это, но если есть внешний инструмент для этого, это тоже поможет.

Редактировать: Решение потенциального дубликата — nircmd сам по себе не дает решения. Это только один из методов отключения звука, если я смогу найти способ запустить его после 15 минут бездействия и заставить его снова включиться при каком-либо действии, например, с настройками питания монитора. Планировщик задач, похоже, не имеет триггера, который мог бы действовать как таймер таким образом.

решение1

Хорошо, это было конкретное шумное приложение, которое я хотел остановить, когда система перешла в режим ожидания (и монитор выключился), но не хотел, чтобы система засыпала. Я понял, что мне все равно, будет ли приложение завершено, поэтому я просто написал однострочный скрипт для его завершения и установил его для триггера простоя в планировщике задач. Не нужно специально завершать том или выяснять, как обнаружить возврат из режима ожидания и восстановить том.

Как ни странно, taskkill /im не сработал, поэтому мне пришлось использовать следующее:

wmic process where name="application.exe" call terminate

решение2

Откройте Панель управления и найдите раздел «Звук» (или просто нажмите «Пуск» и найдите «Изменение системных звуков»), на вкладке «Звук» найдите разделы «Подключение устройства» и «Отключение устройства» в списке событий программы и в раскрывающемся меню ниже выберите «(Нет)».

Обратите внимание, что это также отключит звук Windows при подключении или отключении любого оборудования, например USB, мыши и т. д.

решение3

Я думаю, что это можно сделать относительно легко с помощьюАвтохоткей.

С помощью планировщика задач добавьте задачу с C:\path\to\autohotkey.exeпараметрами Программа: "C:\...path\to\script.ahk"для запуска в режиме ожидания под вашей учетной записью (только когда пользователь вошел в систему,снимите отметку [ ] Остановитесь, если компьютер перестает быть бездействующим, скрипт включит звук и завершит работу самостоятельно):

script.ahk:

#NoEnv

SoundGet manually_muted,,MUTE
If (manually_muted = "Off") {
    currently_idle := A_TimeIdle
    SoundSet 1,,MUTE
    Loop
    {
        Sleep 1000
    } Until (A_TimeIdle < currently_idle)
    SoundSet 0,,MUTE
}
ExitApp

Без планировщика задач используйте следующий скрипт (просто запустите его, он останется резидентным, используя около 4 МБ оперативной памяти):

#NoEnv
#NoTrayIcon
#Persistent
#SingleInstance force

TimeIdleToMute_ms := 15 * 60 * 1000 ; timeout in milliseconds

SetTimer MuteUntilIdleEnds, % TimeIdleToMute_ms

Exit

MuteUntilIdleEnds() {
    global TimeIdleToMute_ms
    static idlemuted := 0
    
    If (!idlemuted && A_TimeIdle > TimeIdleToMute_ms) {
        SoundGet manually_muted,,MUTE
        If (manually_muted = "Off") {
            idlemuted := A_TimeIdle
            SoundSet 1,,MUTE
            Loop
            {
                Sleep 1000 ; ms
            } Until (A_TimeIdle < idlemuted)
            SoundSet 0,,MUTE
            idlemuted := 0
        }
    }
}

Оба сценария можно переписать так, чтобы они реагировали на сообщения Windows, а не простаивали, но даже в этом случае потребление ресурсов незначительно.

Второй скрипт, работающий без прав администратора, может испытывать трудности с обнаружением активности приложений, работающих с правами администратора (он отключит звук после тайм-аута, когда они сфокусированы, несмотря на то, что пользователь выполняет с ними какие-либо действия). Однако если вы время от времени будете переключать фокус на неадминистративные программы, пока не истечет тайм-аут, достаточно будет сбросить таймер. Кроме того, переключение на неадминистративную программу отключит звук, поскольку скрипт обнаружит активность.

Оба скрипта написаны и быстро протестированы для ответа, могут быть ошибки, сообщайте и будьте осторожны :)

PS SE, где подсветка синтаксиса!?

Связанный контент