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