| SendMessage, CommonControl (ComCtl32.dll) |
|
|
| Code im Formular: |
|
| Sub Form_Load() |
| lblInfo.Caption = "Der Monitor wird für 10 Sekunden in den Standby-Mode " & _ |
| "geschaltet und dann wieder eingeschaltet." & _ |
| "Mit der Tastatur oder der Maus kann der Standby-Mode beendet werden." |
| End Sub |
|
| Sub Form_Initialize() |
| Load_CommonControls |
| End Sub |
|
| Sub cmdStart_Click() |
| Dim starttime As Single |
| starttime = Timer |
| Call DisplayStandby(Me.hwnd) |
| Do |
| DoEvents |
| Loop Until Timer > starttime + 10 |
| Call DisplayOn(Me.hwnd) |
| End Sub |
|
| Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) |
| Unload Me |
| End |
| End Sub |
| |
|
| Code im Modul: |
|
| 'Load CommonControl (ComCtl32.dll) |
| Private Declare Sub InitCommonControls Lib "comctl32.dll" () |
|
| Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ |
| (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ |
| ByVal lParam As Any) As Long |
|
| Const SC_MONITORPOWER As Long = &HF170& |
| Const WM_SYSCOMMAND As Long = &H112 |
| Const MONITOR_ON As Long = -1& |
| Const MONITOR_OFF As Long = 1& ' 1 = Standby; 2 = Shut Off |
|
| Sub DisplayOn(frmHwnd As Long) |
| SendMessage frmHwnd, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_ON |
| End Sub |
|
| Sub DisplayStandby(frmHwnd As Long) |
| SendMessage frmHwnd, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF |
| End Sub |
|
| Sub Load_CommonControls() |
| InitCommonControls |
| End Sub |
| |
|
| Eine kürzere Schreibweise als Funktion (Parameter 2 = Shut Off) |
|
| Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ |
| (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ |
| ByVal lParam As Any) As Long |
|
| Const SC_MONITORPOWER = &HF170& |
| Const WM_SYSCOMMAND = &H112& |
|
| Function Monitor_Aus() |
| SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal 2& |
| End Sub |
|