스크린 세이버를 사용 중지하는 것을 감지하는 방법은 무엇입니까? 보호기가 활성화되지 못하게하는 프로세스를 결정하는 Windows 응용

화면 보호기가 활성화되지 못하게하는 프로세스를 결정하는 Windows 응용 프로그램이 있습니까?



답변

powercfg 는 창에 내장되어 있으며 많은 전원 관리 설정을 제어하고 볼 수 있습니다.

powercfg -energy -trace

그러면 매우 상세한 전원 관리 이벤트 로그인 energy-trace.etl이 생성됩니다. 이벤트 뷰어로 열고 이벤트 소스 : 커널 전원, 이벤트 ID 포함 : 62로 로그를 필터링하십시오.

이렇게하면 다음과 같은 이벤트가 제공됩니다.

응용 프로그램 또는 서비스 \ Device \ HarddiskVolume1 \ games \ Steam \ Steam.exe가 0x3 코드로 사용자 전원 관리 설정을 재정의했습니다.

화면 보호기, 모니터 절전 또는 다른 상태 전환이 방지되었는지 여부에 따라 코드가 다를 수 있습니다.


답변

powercfg /requests관리자 명령 프롬프트에서 실행하십시오 . 예를 들어, 내 인쇄 :

DISPLAY:
[PROCESS] \Device\HarddiskVolume8\Games\Origin\Origin.exe
Playing video

SYSTEM:
[DRIVER] Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_0900&SUBSYS_10438560&REV_1000\4&9793a48&0&0001)
An audio stream is currently in use.

AWAYMODE:
None.

이는 Origin이 비디오를 재생 중이므로 화면 보호기가 실행되고 있지 않음을 나타냅니다.


답변

때로는 스크린 세이버 (시간이 아님)의 시간을 다른 것으로 바꾸는 경우가 있습니다. 예를 들어 10 분에서 1로 다시 설정 한 다음 이전의 시간으로 돌아 가면 화면 보호기가 정상적으로 작동합니다.


답변

올바른 방향으로 나를 가리켜 주신 W1N9Zr0에게 감사드립니다!

필자의 경우 XP Pro (SP3) 시스템이므로 “에너지” 스위치를 사용할 수 없었지만 “장치 쿼리” 스위치는 마우스 나 키보드 중 나타냅니다. PS / 2 키보드에서 USB 키보드로 전환하면 설정에 따라 화면 보호기 (및 기타 전원 옵션)가 시작됩니다.

참고 : 스크린 세이버가 1 분으로 설정되면 때로 작동하여 작동한다는 것을 알았습니다. 1 분 이상이되면 스크린 세이버가 작동하지 않습니다.


답변

범인은 일반적으로 미디어 플레이어입니다. 비디오를 재생할 때만 가능하다고 생각하지만 일부 음악 플레이어는 화면 보호기를 보류했습니다. 예를 들어, 오늘 Amazon Music 및 Groove를 열고 일시 중지했는데 한 시간 후에도 여전히 화면 잠금이 해제 된 것을 발견했습니다.

어느 쪽이 책임이 있는지 잘 모르겠지만 IDE와 브라우저에서 실행 중이라고 생각합니다. 둘 다 화면을 잠글 수 있습니다.


답변

나는 이것을하는 프로그램을 모른다. 그러나 알아내는 방법은 스레드가 현재 스크린 세이버가 활성화되는 것을 막고있는 경우 ES_DISPLAY_REQUIRED 값을 보유하는 GetThreadExecutionState () 함수를 사용하는 것입니다.

이 함수를 시스템의 모든 스레드에 적용한 다음 찾은 스레드에서 GetProcessIdOfThread를 호출하면 스크린 세이버를 차단하는 프로세스가 있습니다.