次のようにシステムコマンドメッセージを送信することで、モニターの電源を制御できるはずです。これは 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