電源設定によってオフになったWindowsモニターを起動するにはどうすればよいですか?

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

  •  22-07-2019
  •  | 
  •  

質問

したがって、私のVistaマシンは10分後にモニターの電源を切るように設定されています。 (注:マシンはサスペンドまたは休止状態ではありません)

.Netアプリケーションを実行していますが、「起動」する必要があります。指定された時間にシステム。人間としては、マウスを動かすかキーを押すだけです。プログラムでこれを行うにはどうすればよいですか?

試しました:プログラムでカーソルを設定しました。 " SendKeys&quot ;;を使用そして、それが何かをトリガーすることを期待して、サスペンドを解除するように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