전원 설정으로 Windows 모니터를 깨우는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/332649

  •  22-07-2019
  •  | 
  •  

문제

그래서 내 Vista 기계는 10 분 후에 모니터를 끄도록 설정되었습니다. (참고 : 기계가 매달리지 않거나 최대 절전 모드가 없습니다)

.NET 응용 프로그램이 실행 중이므로 지정된 시간에 시스템을 "깨우"해야합니다. 인간으로서 마우스를 움직이거나 키를 누릅니다. 프로그래밍 방식으로 어떻게해야합니까?

나는 시도했다 : 프로그램 적으로 커서를 설정한다; "sendkeys"사용; 그리고 CreateWaitableTimer를 핀 바로 피하는 것조차도 무언가를 유발할 것이라는 희망으로 (중단되지 않았음에도 불구하고)

C#의 이상적으로 코드는 좋지만 올바른 Win API로 충분합니다.

미리 감사드립니다.

도움이 되었습니까?

해결책

다음과 같이 시스템 명령 메시지를 전송하여 모니터 전원을 제어 할 수 있어야합니다. 이것은 XP에서 테스트되었으며 Vista는 다소 변경되었을 수 있으므로 테스트하고 알려 주어야합니다.

이 코드는 VB에 있지만 사용하는 Win32 API 호출을 볼 수 있습니다. 코드가 메시지를 처리하기 위해 생성 된 창이 필요하므로 (기본 창 처리 함수로 전달하십시오) 코드가 작성된 창이 기능으로 전달되어야합니다.

Const SC_MONITORPOWER As Integer = &HF170
Const WM_SYSCOMMAND As Short = &H112S
Private Function SendMessage(
    ByVal Handle As Int32,
    ByVal wMsg As Int32,
    ByVal wParam As Int32,
    ByVal lParam As Int32) As Int32
End Function
Sub MonStandBy(hWnd as Int32)
    SendMessage(hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, 1)
End Sub
Sub MonOff(hWnd as Int32)
    SendMessage(hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, 2)
End Sub
Sub MonOn(hWnd as Int32)
    SendMessage(hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, -1)
End Sub
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top