您应该能够通过发送以下系统命令消息来控制监视器电源。请注意,这是在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