www.mikrocontroller.net

Forum: PC-Programmierung VB 2008 - Bildschirmschoner bzw. Energiesparmodus austricksen


Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich schreibe gerade ein Programm, dass mir einen Status anzeigt.
Dieser Status soll solange auf dem Monitor angezeigt werden, wie das 
Programm läuft. Jetzt habe ich das Problem, dass mir der 
Bildschirmschoner bzw. der Energiesparmodus dazwischen funkt.

Ich möchte das System nicht verändern. Gibt es eine Möglichkeit bzw. 
einen Trick (wie z.B. eine Mausbewegung alle 30 Sekunden zu simulieren), 
damit der Bildschirmschoner bzw. der Energiesparmodus nicht anspricht?

Ich habe es schon mit folgendem Code probiert:

Private Declare Function SetCursorPos Lib "user32" (ByVal X As Integer, 
ByVal Y As Integer) As Integer

Private Sub Timer_Mouse_Tick(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Timer_Mouse.Tick

        Dim x As Integer
        Dim y As Integer
        x = MousePosition.X + 50
        y = MousePosition.Y + 50
        SetCursorPos(x, y)
        SetCursorPos(x-50, y-50)

End Sub

Der Mauscursor bewegt sich zwar aber leider geht der Bildschirmschoner 
trotzdem an.

Gibt es eine ander Möglichkeit?

Danke für Eure Hilfe

Hans

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Windows sendet WM_SYSCOMMAND mit SC_SCREENSAVE in wParam an die aktive 
Anwendung. Wird die Nachricht abgefangen und 0 zurückgegeben, wird der 
Bildschirmschoner nicht aktiviert.

Das funktioniert ab Vista nicht mehr, wenn der Bildschirmschoner nach 
dem Abschalten ein Passwort erwartet.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, damit umgehe ich aber nur den Bildschirmschoner nicht aber den 
Energiesparmodus der mir den Monitore ausschaltet!

Gibt es eine ander Möglichkeit?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm. Das wird vermutlich irgendwo in den Tiefen der Powermanagement-API 
zu finden sein; such mal in der MSDN in der Nähe von WM_POWERBROADCAST. 
Da habe ich zwar auf Anhieb nichts über Monitore finden können, aber die 
Ecke sollte im groben und ganzen die richtige sein.

Viel Glück.

Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok habe ne Lösung gefunde:

Einfach in Regelmäßigen abständen eine Taste in VB-Drücken

z.B.: SendKeys.Send("{SCROLLLOCK}")

Schon geht kein Screensaver etc. mehr an!

Danke für Eure Vorschläge

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.