Den skal ikke kaldes af dig. Den bliver kaldt af delphi's globale eventhandler, når windows laver en broadcast til alle kørende applikationer. Den skal bare tilføjes til din form.
Her er en anden metode at forsøge med. Jeg har ikke selv Delphi installeret mere, så jeg kan ikke teste, før jeg poster her.
{ Insert the following code into the "public" section of your main form: } procedure AppMessage (var Msg : TMsg; var bHandled : boolean ) ;
{ In the OnCreate for the main form add: } Application.OnMessage := AppMessage;
{ In the "implementation" section, insert the following code (suppose Form1 is the name of your form): } procedure TForm1.AppMessage( var Msg : TMsg; var bHandled : boolean ) ; begin if((WM_SYSCOMMAND = Msg.Message) and (SC_SCREENSAVE = Msg.wParam) )then bHandled := True; end;
Hvis man bruger det sidste af sherlocks forslag skal man huske at sætte den igen, men hvad sker egentlig hvis programmet uventet dør?
I øvrigt en helt sjovt API-kald, den SystemParametersInfo.
Jeg prøvede forslag nr. 2, hvor jeg koblede den på application.OnMessage. Den skal jo også forhindre pauseskærmen når andre forme er åbne. Men min maskine er imod mig. Selvom maskinen er genstartet og tidsintervallet sat til 1 minut, kan jeg ikke få pauseskærmen frem - og så kan jeg heller ikke teste om det virker.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.