Einzelnen Beitrag anzeigen

Breager

Registriert seit: 18. Feb 2012
40 Beiträge
 
#5

AW: Timer des Bildschirmschoners zurücksetzen

  Alt 18. Aug 2012, 23:31
Vielen dank nochmal an Euch beide! Ziemlich nervig, das zu testen, da ich immer eine gewisse Zeit warten musste. Das Problem ist nun einfach durch ein Setzen des entsprechenden Wertes auf TRUE reproduzierbar. Der Vollständigkeit halber, wie ich das ganze nun letzendlich gelöst habe. Ich denke diese Methode ist besser, als den Bildschirmschoner zu deaktivieren.

Delphi-Quellcode:
public
   procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND;
...
procedure TForm1.WMSysCommand(var Msg: TMessage);
begin
  IF (Msg.wParam = SC_SCREENSAVE) OR (Msg.WParam = SC_MONITORPOWER) then
      Msg.Result := 1 ELSE
      inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
Const
  SPI_GETBLOCKSENDINPUTRESETS = $1026;
  SPI_SETBLOCKSENDINPUTRESETS = $1027;
Var
  flag :Boolean;
begin
SystemParametersInfo(SPI_GETBLOCKSENDINPUTRESETS, 0,@flag, 0) ;

IF flag then
   SystemParametersInfo(SPI_SETBLOCKSENDINPUTRESETS, Integer(false),nil, 0);

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 keybd_event(0, 0, 0, 0);
end;
Die IF-Abfrage ist natürlich nicht zwingend erforderlich.

Viele Grüße
  Mit Zitat antworten Zitat