SC_MONITORPOWER off halten
-
wie kann ich erreichen, dass der "Monitor-Standbymodus" den ich per
void CspowerDlg::OnBnClickedButton5() { SendMessage(WM_SYSCOMMAND, SC_MONITORPOWER,2);//monitor aus CheckDlgButton(IDC_CHECK1, true); //checkbox setzen für späteren check ...selber setze, nicht mehr reaktiviert wird. Es soll also bis zu einer gewissen Bedingung nich tmöglich sein, per Maus-/Tastaturbewegung in den normalen Modus zu holen. Der Bildschirm soll schwarz bleiben.
Habe versucht, die Message folgendermassen abzufangen:
void CspowerDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ( (nID & 0xFFF0) == (SC_MONITORPOWER) && (IsDlgButtonChecked(IDC_CHECK1)== true) ) { //MessageBox("Message abgefangen", "WM_SYSCOMMAND", MB_OK); } else { CDialog::OnSysCommand(nID, lParam); } }aber es erscheint mir so, dass Windows was anderes sendet wenn ich eine Taste drücke bzw. die Maus bewege.
-
Nachtrag:
Per BlockInput könnte ich ja Maus und Tastatur "aushängen".
Ist damit die Möglichkeit genommen per Remote den Rechner zu steuern, also Eingaben z.b. über VNC und dergleichen zu machen?Dann könnte man obiges leicht lösen.
-
Also BlockInput fuktioniert schon mal auch nicht.
Windows(Vista) registriert trotz gesetztem BlockInput(true), dass eine Taste gedrückt wurde und reaktiviert den Bildschirm.
-
Maus bzw. Tatatureingaben über Remote/VNC schalten auch den Monitor wieder ein.
Also muss die Message die Windows erhält, um den Monitor wieder einzuschalten, abgefangen werden.
Nur welche ist das?
SC_MONITORPOWER ist es nicht.Ich hoffe hier kann mir einer helfen?
-
keiner eine idee?
-
Diese Messsage wird von Windows selbst generiert und nur zur Info an die Anwendungen verschickt - Ich bezweifle das du Windows von der Aktion abhalten kannst.
-
Dann müsste doch rein theoretisch die Tastatur bzw. Maus-Bewegungen abgefangen werden, bzw. die Messages an Windows oder??
Weil erst nach einer Bewegung schaltet Windows ja den Schirm wieder ein.
-
Nachtrag:
Es muss anscheinend doch irgendwie gehen, denn ich kann z.b. im Programm Teamviewer 3.0 einstellen, dass wenn ich per Remote steuere, der Gast-Bildschirm dunkel bleibt.
-
noch keiner ne idee??
-
hilfe?
keiner ein plan von euch?
-
while(true){ SendMessage(GetForegroundWindow(), WM_SYSCOMMAND, SC_MONITORPOWER, 2); }
-
Naja, ein Sleep(50) dazwischen schadet auch nicht...
-
Also wenn du keinen Monitor haben willst, dann schalte ihn aus oder schließe keinen an. Oder was willst du mit deinen Bemühungen erreichen?