4 Stimmen

Wie schaltet man die Stromversorgung des Monitors in C# korrekt aus?

Ich verwende bereits einen Code, um die Stromversorgung des Monitors auszuschalten, aber ich habe immer noch ein kleines Problem.

Der Code funktioniert die meiste Zeit gut, aber ab und zu wird der Bildschirm leer. Was ich damit meine, ist, dass der Bildschirm völlig schwarz ist, man kann nichts sehen, aber man kann sehen, dass er noch beleuchtet ist. Das LCD-Licht ist immer noch eingeschaltet, aber der Bildschirm ist komplett schwarz.

Ich habe keine Ahnung, warum das passiert, vielleicht weiß jemand von Ihnen, warum... Dies wird nie passieren, wenn ich die Windows-Energieeinstellungen so einstelle, dass der Monitor nach X Minuten ausgeschaltet wird, aber ich brauche eine Anwendung, die dies tut, damit ich sie mit einer Verknüpfung aufrufen kann, wann immer ich will.

Der Code, den ich verwende, sieht ungefähr so aus:

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);

const int WM_SYSCOMMAND   = 0x0112;
const int SC_MONITORPOWER = 0xF170;
const int HWND_BROADCAST  = 0xFFFF;

SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);

Irgendwelche Ideen?

4voto

Mufaka Punkte 2326

Sie wollen diese Nachricht nicht an alle Windows-Nutzer weitergeben. Sie verlassen sich darauf, dass jedes einzelne von ihnen die Nachricht so verarbeitet, wie Sie es erwarten.

Sie müssen Ihre eigene erstellen und nur die Nachricht an sie senden, damit Sie das Verhalten kontrollieren können.

In den Kommentaren zu diesem Beitrag von Raymond Chen sind einige Lösungen zu finden: http://blogs.msdn.com/oldnewthing/archive/2006/06/13/629451.aspx

1voto

Rex M Punkte 138455

Haben Sie dies auf mehreren Rechnern getestet? Könnte ein Treiberproblem sein...

0voto

rfgamaral Punkte 16220

Nichts hat funktioniert, ich habe mein eigenes Fenster erstellt und dieses Fenster-Handle verwendet und meistens ist der Bildschirm ausgeschaltet und komplett schwarz (LCD-Licht ausgeschaltet), aber hin und wieder schaltet sich das LCD-Licht nicht aus... :(

0voto

Ich habe dieses Problem auch. Die Geräte funktionieren oft gut, und dann lassen sie aus unbekannten Gründen nicht zu, dass die Bildschirme in den Ruhezustand gehen. Ich kann keine konkrete Gemeinsamkeit finden.

Es passiert sogar, wenn die Rechner abgemeldet sind. Normalerweise wird das Problem durch einen Neustart behoben. Nicht immer.

Ich habe sogar schon erlebt, dass die Bildschirme auf einem abgemeldeten Rechner aufwachen und sich weigern, wieder einzuschlafen, ohne dass jemand mit ihm interagiert hat.

Offensichtlich gibt es einen oder mehrere Prozesse, die dafür verantwortlich sind, aber wie kann man sie aufspüren?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X