Etwas professioneller und - hoffentlich - auch zuverlässiger sollte es so gehen:
Delphi-Quellcode:
type
TForm1 = class(TForm)
{...}
private
procedure AppMessage(var msg: TMsg; var handled: boolean);
{...}
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := AppMessage;
end;
procedure TForm1.AppMessage(var msg: TMsg; var handled: boolean);
begin
if (msg.message = WM_SYSCOMMAND) and (msg.wparam = SC_SCREENSAVE) then
handled := true;
end;
Falls die Inaktivierung des Screensavers nicht während der gesamten Laufzeit des eigenen Programms ausgelöst sein soll, sondern nur sporadisch über bestimmte Abläufe innerhalb des Programms, dann kann diese Feinsteuerung mittels einer zusätzlich eingeführten Variablen gesteuert werden. Die muss dann in der Methode AppMessage() ergänzend abgefragt werden, um den dortigen Parameter '
handled' entsprechend zu belegen.