Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: Bildschirmschoner verhindern

  Alt 11. Sep 2005, 18:57
Er moechte das der Bildschirmschoner nicht anspringt solange sein Programm laeuft.
Damit ist dieser Code von Marabu der Richtige:
Delphi-Quellcode:
procedure TMainForm.AppMessage(var Msg: TMsg; var Handled: boolean);
begin
  if (Msg.Message = WM_SYSCOMMAND) and (Msg.wParam = SC_SCREENSAVE) then
  begin
    Handled := true;
    Msg.Result := 1;
  end;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
  Application.OnMessage := AppMessage;
end;
Windows sendet jedesmal wenn der Screensaver anspringen soll eine WMSYSCOMMAND mit Parameter SC_SCREENSAVE an alle Applikationen.
Antwortet man mit der 1 in Msg.Result, dann startet Windows den Screensaver nicht.
Um OnDestroy muss man sich nicht kuemmern, da die Applikation ja dann sowieso nicht mehr da ist um zu antworten.

Die Loesung den Screensaver per SystemParametersInfo zu deaktivieren ist ein bischen problematisch, da das Programm ja abstuerzen kann und dann den Screensaver nicht mehr reaktiviert.
  Mit Zitat antworten Zitat