
모니터가 꺼질 때 소리(Windows 10)를 끄고 싶습니다. 현재 15분 후에 모니터가 꺼지도록 전원 설정이 되어 있습니다. 그러면 소리도 꺼졌으면 좋겠어요.
이 작업을 수행하는 내장된 Windows 방법이 있는지는 확실하지 않지만 이를 수행할 수 있는 외부 도구가 있다면 그것도 도움이 될 것입니다.
편집: 잠재적인 속임수 해결 - nircmd만으로는 해결책을 제공하지 않습니다. 15분 동안 아무런 활동이 없으면 소리를 끄는 방법을 찾을 수 있고 모니터 전원 설정과 같은 특정 작업 시 다시 켜지도록 하는 방법을 찾을 수 있다면 이는 소리를 끄는 한 가지 방법일 뿐입니다. 작업 스케줄러에는 이러한 방식으로 타이머 역할을 할 수 있는 트리거가 없는 것 같습니다.
답변1
좋아, 그래서 그것은 시스템이 유휴 상태가 될 때(그리고 모니터가 꺼질 때) 중지하고 싶었지만 시스템이 절전 모드로 전환되는 것을 원하지 않는 특정 소음 발생 응용 프로그램이었습니다. 애플리케이션이 종료되더라도 상관없다는 것을 깨달았기 때문에 애플리케이션을 종료하기 위한 한 줄짜리 스크립트를 작성하고 작업 스케줄러에서 유휴 트리거에 대해 설정했습니다. 특별히 볼륨을 종료하거나 유휴 상태에서 복귀를 감지하고 볼륨을 복원하는 방법을 알아낼 필요가 없습니다.
이상하게도 taskkill /im이 작동하지 않아서 다음을 사용해야 했습니다.
wmic process where name="application.exe" call terminate
답변2
제어판을 열고 소리를 찾아보세요(또는 시작을 클릭하고 "시스템 소리 변경"을 검색하세요). "소리" 탭 아래의 프로그램 이벤트 목록에서 장치 연결 및 장치 연결 해제를 찾아 아래 드롭다운 메뉴에서 선택하세요. "(없음)".
이렇게 하면 USB, 마우스 등과 같은 하드웨어를 연결하거나 분리할 때 Windows에서 소리가 나지 않게 됩니다.
답변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
작업 스케줄러가 없으면 다음 스크립트를 사용하십시오(실행하기만 하면 약 4MB의 RAM을 사용하여 상주 상태로 유지됩니다).
#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, 구문 강조!?