2009-02-04 6 views
4

제안 할 수있는 한 가지 해결책은 주기적으로 특별한 '화면 보호기'데스크톱을 찾는 것입니다. 존재하는 경우 실행중인 스크린 세이버로 간주합니다.스크린 세이버가 실행 중인지 확인하는 방법은 무엇입니까?

하지만 분명히 언급 한 데스크톱이있는 모든 스크린 세이버는 항상 존재하지 않습니다.

더 신뢰할 수있는 해결책이 있습니까?

답변

2

저는 키가 윈도우 클래스 ("WindowsScreenSaverClass")로 스크린 세이버를 식별하는 것이라고 생각합니다. 이 페이지는 코드 예제 및 설명이있는 How do I start, detect and stop screen savers?입니다. 그 .MainModule.FileName

-1

검색 프로세스는 SPI_GETSCREENSAVERRUNNING 파라미터와 WINAPI SystemParametersInfo 함수()를 참조. 그것은 화면 보호기가 현재 실행 중인지 여부를 감지하는 유일한 문서화 된 방법입니다. (화면 보호기가 활성화되어 있는지 확인하고, 시간 제한 값을 가져오고 설정 한 다음이 기능을 사용하여 화면 보호기를 시작할 수도 있습니다.)

9

에 .SCR와 프로세스

0

This은 화면 보호기 이벤트 감지 기능을 구현 한 것입니다.

주 :

  • SPI_GETSCREENSAVERRUNNING 윈도우 이벤트 ID 4802 및 내 경우에는 정확하지 않았다 4803, my problem이 때문에 사용자 유휴 시간 계산 과정 인 경우 분명히 작동하지 않습니다
  • GetLastInputInfo
  • 를 추가 참조 감지 서비스.
관련 문제