Monitor in den Standby-Mode schalten

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

 Ranking-Hits zurück Sitemap
Designed by www.wbrnet.info