Rubrik: System/Windows · Desktop/Bildschirm/Display | VB-Versionen: VB.NET | 14.09.07 |
Monitor in Standby schalten (.NET) Mit Sendmessage den Monitor in den Standby-Modus schicken. | ||
Autor: mikeb69 | Bewertung: | Views: 13.228 |
www.powerdesktop-online.de | System: WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mit Hilde der SendMessage API-Funktion kann der Monitor in den Standby-Modus geschickt werden.
Hierzu erstellen wir uns eine kleine Klasse, die die Funktionalität kapselt.
Public Class ClassPower Private Declare Function SendMessage Lib "user32" _ Alias "SendMessageA" ( _ ByVal hWnd As IntPtr, _ ByVal wMsg As Int32, _ ByVal wParam As Int32, _ ByVal lParam As Int32) As Int32 Private Const WM_SYSCOMMAND As Int32 = &H112 Private Const SC_MONITORPOWER As Int32 = &HF170 ''' <summary>Versetzt den Bildschirm in den Standby-Modus.</summary> ''' <param name="handle" >Das Handle des aufrufenden Programmes ''' z.b. Me.Handle.ToInt32</param> Public Sub Screen2Standby(ByVal handle As Int32) SendMessage(handle, WM_SYSCOMMAND, SC_MONITORPOWER, 1) End Sub End Class
Aufrufen können Sie das Ganze dann wie folgt:
Erstellen Sie eine WindowsForms-Anwendung und fügen einen Button hinzu.
Public Class Form1 ' Verweis auf die soeben erstellte Klasse Private cp As ClassPower Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Klasse instanzieren cp = New ClassPower End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Monitor in den Standby-Zustand versetzen cp.Screen2Standby(Me.Handle.ToInt32) End Sub End Class