ScreenOn

Antworten
Wal
Beiträge: 3
Registriert: So 16. Jan 2022, 09:49

ScreenOn

Beitrag von Wal »

Ich habe einen Fullscreenbrowser für eine Visualisierung erstellt der über SmartHome fernsteuerbar ist.
Um den Bildschirm wieder zu aktivieren habe ich nun diese Funktionen getestet:

Code: Alles auswählen

case Ende of
              0:
                PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER,  -1);
              1:
                KeyInput.Press(0);
              2:
                MouseInput.Click(mbLeft,[],300,300);
              3:
                begin
                  MouseInput.Move([], MainForm, 100, 100, 0);
                  sleep(100);
                  MouseInput.Move([], MainForm, 0, 0, 0);
                end;
            end;
Während bei meiner Hardware alle 4 Funktionen ohne Probleme gehen um den Monitor zu aktivieren, haben einige User keine Funktion.
ScreenOff mit

Code: Alles auswählen

PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER,  2);
funktioniert bei allen.
Gibt es noch mehr Möglichkeiten die ich habe ?

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Re: ScreenOn

Beitrag von theo »

Bin nicht auf Windows, aber wie ist das jetzt genau bei dir?
Abschalten geht mit SC_MONITORPOWER aber einschalten geht nicht?

Ist natürlich so ein Windows Tricks Thema.
https://stackoverflow.com/questions/125 ... -windows-8

Ich weiss nicht genau, was MouseInput macht. Vielleicht mal direkt mit WinApi "mouse_event" probieren.

Code: Alles auswählen

procedure mouse_event(dwFlags:DWORD; dx:DWORD; dy:DWORD; cButtons:DWORD; dwExtraInfo:DWORD); external 'user32' name 'mouse_event';

Benutzeravatar
KodeZwerg
Beiträge: 96
Registriert: Mo 6. Feb 2023, 11:04

Re: ScreenOn

Beitrag von KodeZwerg »

unter Windows würde in einem TTimer das hier helfen das ein Monitor "wach" bleibt.

Code: Alles auswählen

SetThreadExecutionState(ES_DISPLAY_REQUIRED);
Zuletzt geändert von KodeZwerg am Sa 39. Okt 6043, 29:87, insgesamt 43-mal geändert.

Benutzeravatar
KodeZwerg
Beiträge: 96
Registriert: Mo 6. Feb 2023, 11:04

Re: ScreenOn

Beitrag von KodeZwerg »

in Kombination mit

Code: Alles auswählen

SetThreadExecutionState(ES_SYSTEM_REQUIRED);
würde das gesamte System "wach" bleiben.

(allerdings nur wenn man den Bildschirmschoner deaktiviert)
Zuletzt geändert von KodeZwerg am Sa 39. Okt 6043, 29:87, insgesamt 43-mal geändert.

Benutzeravatar
KodeZwerg
Beiträge: 96
Registriert: Mo 6. Feb 2023, 11:04

Re: ScreenOn

Beitrag von KodeZwerg »

lange nicht mehr getestet, aber so hatte ich es früher mal geregelt mit dem Bildschirmschoner
ausschalten:

Code: Alles auswählen

(HKEY_CURRENT_USER,'\Control Panel\Desktop','ScreenSaveActive','0');
einschalten:

Code: Alles auswählen

(HKEY_CURRENT_USER,'\Control Panel\Desktop','ScreenSaveActive','1');
Zuletzt geändert von KodeZwerg am Sa 39. Okt 6043, 29:87, insgesamt 43-mal geändert.

Wal
Beiträge: 3
Registriert: So 16. Jan 2022, 09:49

Re: ScreenOn

Beitrag von Wal »

Danke für die Antworten.
Das System bleibt wach nur der Bildschirm wird aus und eingeschaltet.
Mit dem schwarzen Bildschirmschoner werde ich mal testen, das Problem wird da aber die Hintergrundbeleuchtung sein.

Antworten