2009-03-03 6 views
4

Ich verwende bereits einen Code, um den Monitor auszuschalten, aber ich habe immer noch ein kleines Problem.Wie schalte ich den Monitor in C# korrekt aus?

Der Code funktioniert in den meisten Fällen gut, aber ab und zu wird der Monitor leer. Was ich damit meine ist, dass der Bildschirm komplett schwarz ist, du kannst nichts sehen, aber du kannst sehen, dass es immer noch leuchtet. Das LCD-Licht ist immer noch eingeschaltet, aber der Bildschirm ist komplett schwarz.

Ich habe keine Ahnung, warum das passiert, vielleicht einige von euch wissen, warum ... Das wird nie passieren, wenn ich Windows Power-Einstellungen auf den Monitor nach X Minuten ausschalten, aber ich brauche eine Anwendung, damit ich kann es jederzeit mit einer Verknüpfung aufrufen.

Der Code Ich verwende etwas wie folgt 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?

Antwort

1

Haben Sie das auf mehreren Maschinen getestet? Könnte ein Treiberproblem sein ...

+0

Nein, nur bei mir. Das ist das, an dem ich will, dass es funktioniert ... –

4

Sie möchten diese Nachricht nicht an alle Fenster übertragen. Sie verlassen sich auf jeden einzelnen von ihnen, um es so zu verarbeiten, wie Sie es erwarten.

Sie müssen Ihre eigenen erstellen und nur die Nachricht senden, damit Sie das Verhalten steuern können.

Es gibt ein paar Lösungen in den Kommentaren dieses Beitrags von Raymond Chen: http://blogs.msdn.com/oldnewthing/archive/2006/06/13/629451.aspx

+1

+1 Broadcasting kann viele unangenehme Probleme verursachen. –

+0

Ich werde den Link lesen, wenn ich die Chance bekomme und melde mich zurück :) –

+0

Es hat nicht funktioniert ... Das LCD-Licht schaltet sich nicht ständig aus :( –

0

Nichts funktionierte, ich mein eigenes Fenster erstellt und verwendet, dass die Fenstergriff und die meisten der Zeit, wird der Bildschirm ausgeschaltet und es ist völlig schwarz (LCD-Licht ausgeschaltet), aber hin und wieder schaltet sich das LCD-Licht nicht aus ... :(

0

Ich habe dieses Problem auch. Maschinen arbeiten oft in Ordnung, und dann für nicht bekannt Grund, lass die Bildschirme nicht schlafen. Ich kann keine konkrete Gemeinsamkeit finden.

Es passiert sogar, wenn Maschinen logg sind raus. Normalerweise wird 1 Neustart das Problem beheben. Nicht immer.

Ich habe sogar gesehen, dass die Bildschirme aufwachen und sich weigern, wieder auf einer Maschine zu schlafen, die ausgeloggt war, und niemand hat damit interagiert.

Offensichtlich gibt es einige Prozesse oder Prozesse zu beschuldigen, aber wie verfolgen Sie sie?

Verwandte Themen