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!

Empfohlene Beiträge

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 zu diesem Kommentar

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 zu diesem Kommentar
Ich habe das von mir erstellte Tool auf mehreren Systemen getestet. Es scheint erfolgreich zu funktionieren.

 

http://www.dalecom.de/tools/MonitorWecker.exe

 

Beim Start der EXE-Datei werden alle angeschlossenene Displays "aufgeweckt".

Für das Tool wird Net.Framework 2.0 benötigt.

 

Magst du vielleicht auch den Source Code veröffentlichen?

Link zu diesem Kommentar

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

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...