電源設定によってオフになったWindowsモニターを起動するにはどうすればよいですか?
質問
したがって、私の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
所属していません StackOverflow