Jump to content

Monitor per Tool aus Standby wecken


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Recommended Posts

Hallo,

 

ich haben ein Programm was Fehlermeldungen ausgibt, welche auf dem Monitor angezeigt werden.

 

Bisher ist es so, das der Montior 24/7 an ist, und daher die Meldung zu lesen ist. Allerdings ist die lebens dauer der Monitore dann realtiv knapp.

 

Daher möchte ich die Monitore in den Standby gehen lassen und wecken wenn ein Fehlerauftritt. Dies geht natürlich per Tastendruck oder Mausbewegung, aber nicht aus einem Programm.

 

Nun ist die Frage, wie kann ich den Standby Modus vom Monitor beenden damit die Fehlermeldung sichtbar wird.

 

z.B. ein Minitool starten welches ein Hardwareerreignis auslöst oder per DDI ?

 

Über Tipps würde ich mich freuen!

 

vielen Dank!

Link to comment

Hallo Dustin781,

kann dein Programm bei der Anzeige einer auch einen Programm starten?!

 

Falls ja, müsstest du dir ja nur eine Batch oder halt ein ausführbares Programm erstellen, welches einen Tastendruck "simuliert".

 

Am einfachsten wäre ein "Druck" auf die "Shift-Taste", damit keine Veränderungen am System vorgenommen werden, aber trotzdem der Monitor wieder "leuchtet".

 

Liebe Grüße

Daniel

Link to comment

Hallo zusammen,

hier der Code in VB:

 

[i][b]form1.vb:[/b][/i]

Public Class Form1
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Monitor.SetMonitorState("on", Me.Handle)
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Monitor.SetMonitorState("off", Me.Handle)
       Me.Close()
   End Sub
End Class

 

[i][b]class1.vb:[/b][/i]

Imports System.Runtime.InteropServices
Public Class Monitor
   <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

   Private Enum Params As Int32
       SC_MONITORPOWER = &HF170
       WM_SYSCOMMAND = &H112
       TURN_MONITOR_OFF = 2
       TURN_MONITOR_ON = -1
   End Enum

   Public Shared Sub SetMonitorState(ByVal Index As String, ByVal Handle As IntPtr)
       Select Case Index
           Case "off"
               SendMessage(Handle, Params.WM_SYSCOMMAND, Params.SC_MONITORPOWER, _
                 Params.TURN_MONITOR_OFF)
           Case "on"
               SendMessage(Handle, Params.WM_SYSCOMMAND, Params.SC_MONITORPOWER, _
                 Params.TURN_MONITOR_ON)
       End Select
   End Sub
End Class

 

Liebe Grüße

Daniel

  • Thanks 1
Link to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...