1、用 VB 定时关闭显示器与音箱注意是“关闭”显示器,也即是没有信号,不是弄个纯黑色的窗体,希望两个仪器的关闭代码要分开(便于维护) ,移动鼠标或按下键盘即要解锁。还请说明实现原理。关闭显示器倒是有 API,下列代码可以帮你关闭显示器(是绝对的没有信号), 但关闭音箱是没有办法的.为什么呢?因为电脑没有控制音箱电源的线啊只有音频线. 只能控制有声音没声音.如果一定要控制音箱的电源线开关.那么, 建议你去学习单片机及电子线路.下列代码可以帮你关闭显示器.Private Declare Function CloseScreenFun Lib “user32“ Alias “SendMessageA“
2、 (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Declare Function GetForegroundWindow Lib “user32“ () As LongPrivate Const WM_SYSCOMMAND = &H112&Private Const SC_MONITORPOWER = &HF170&Private Sub CloseScreenA(ByVal sWitch As Boolean)If sWitch = Tru
3、e ThenCloseScreenFun GetForegroundWindow, WM_SYSCOMMAND, SC_MONITORPOWER, 1&ElseCloseScreenFun GetForegroundWindow, WM_SYSCOMMAND, SC_MONITORPOWER, -1&End IfEnd SubPrivate Declare Function SendScreenMessage Lib “user32“ _Alias “SendMessageA“ _(ByVal hwnd As Long, _ByVal wMsg As Long, _ByVal wParam A
4、s Long, _lParam As Any) As LongPrivate Const MONITOR_ON = -1&Private Const MONITOR_LOWPOWER = 1&Private Const MONITOR_OFF = 2&Private Const SC_MONITORPOWER = &HF170&Private Const WM_SYSCOMMAND = &H112关闭 显示器Public Function MonitorOff(Form As Form)Call SendScreenMessage(Form.hwnd, WM_SYSCOMMAND, SC_MO
5、NITORPOWER, ByVal MONITOR_OFF)End Function开启显示器Public Function MonitorOn(Form As Form)Call SendScreenMessage(Form.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal MONITOR_ON)End Function关闭显示器电源 :)-深度睡眠Public Function MonitorPowerDown(Form As Form)Call SendScreenMessage(Form.hwnd, WM_SYSCOMMAND, SC_MONITO
6、RPOWER, ByVal MONITOR_LOWPOWER)End FunctionPrivate Declare Function SendScreenMessage Lib “user32“ _Alias “SendMessageA“ _(ByVal hwnd As Long, _ByVal wMsg As Long, _ByVal wParam As Long, _lParam As Any) As LongPrivate Const MONITOR_ON = -1&Private Const MONITOR_LOWPOWER = 1&Private Const MONITOR_OFF
7、 = 2&Private Const SC_MONITORPOWER = &HF170&Private Const WM_SYSCOMMAND = &H112关闭 显示器Public Function MonitorOff(Form As Form)Call SendScreenMessage(Form.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal MONITOR_OFF)End Function开启显示器Public Function MonitorOn(Form As Form)Call SendScreenMessage(Form.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal MONITOR_ON)End Function