Mit Zuhilfename der API-Funktion SendMessage lässt sich der Monitor in den StandBy-Modus schalten und auch wieder einschalten. Erstellen Sie ein neues Windows-Forms Projekt und platzieren auf die Form einen Button, um den Monitor in den StandBy-Zustand zu versetzen. Mit Hilfe eines Timers wird der Monitor dann nach 10 Sekunden autom. wieder "reaktiviert". Imports System.Runtime.InteropServices Public Class Form1 ' Timer-Objekt für das Einschalten des Monitors Dim WithEvents oTimer As Timer ''' <summary> ''' Klasse für Zugriff auf API-Funktion "SendMessage" ''' </summary> Public Class Monitor ''' <summary> ''' DLL-Deklaration der SendMessage-API ''' </summary> <DllImport("user32.dll", EntryPoint:="SendMessageA")> _ Private Shared Sub SendMessage( _ ByVal hWnd As IntPtr, _ ByVal uMsg As Int32, _ ByVal wParam As Int32, _ ByVal lParam As Int32) End Sub ''' <summary> ''' Benötigte Konstanten für die SendMessage API-Funktion ''' </summary> Private Enum Params As Int32 SC_MONITORPOWER = &HF170 ' wParam WM_SYSCOMMAND = &H112 ' uMsg TURN_MONITOR_OFF = 2 ' Monitor ausschalten TURN_MONITOR_ON = -1 ' Monitor einschalten End Enum ''' <summary> ''' Schaltet den Monitor entweder ein- oder aus ''' </summary> ''' <param name="Index">off = ausschalten / on = einschalten</param> ''' <param name="Handle">Handle der aufrufenden Anwendung</param> Public Shared Sub SetMonitorState(ByVal Index As String, ByVal Handle As IntPtr) Select Case Index Case "off" ' Schaltet den Monitor aus SendMessage(Handle, Params.WM_SYSCOMMAND, Params.SC_MONITORPOWER, _ Params.TURN_MONITOR_OFF) Case "on" ' Schaltet den Monitor wieder ein SendMessage(Handle, Params.WM_SYSCOMMAND, Params.SC_MONITORPOWER, _ Params.TURN_MONITOR_ON) End Select End Sub End Class Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Monitor ausschalten und nach gewählter Zeit wieder einschalten Monitor.SetMonitorState("off", Me.Handle) ' Timer starten oTimer = New Timer oTimer.Interval = 10000 ' 10 Sek. oTimer.Start() End Sub Private Sub oTimer_Tick(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles oTimer.Tick ' Timer anhalten oTimer.Stop() ' Monitor wieder einschalten Monitor.SetMonitorState("on", Me.Handle) End Sub End Class Dieser Tipp wurde bereits 29.726 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats Januar 2025 Dieter Otter Zeilen einer MultiLine-TextBox ermitteln (VB.NET) Dieser Zipp zeigt, wie man die Zeilen einer MultiLine-TextBox exakt so ermitteln kann, wie diese auch in der TextBox dargestellt werden. Neu! sevCommand 4.0 Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |