Einzelnen Beitrag anzeigen

Mutier

Registriert seit: 22. Jul 2006
20 Beiträge
 
#9

Re: Screensaver verhindern, wenn Fenster nicht den Fokus hat

  Alt 4. Aug 2006, 22:41
... das war 'ne gute Idee. Ergebnis: Die Message kommt nur dann an, wenn das Fenster den Fokus hat.

Edit:
Ich habe es eben nochmal mit 'nem jungfräulichen Form ausprobiert, um etwaige Abhängigkeiten/Unstimmigkeiten in meinem Programm auszuschließen. Am Ergebnis hat sich nix getan. Es kann also eigentlich nicht sein, dass Windows die Nachricht an alle Fenster schickt. Getestet mit folgendem Code:

Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
      procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
// Mit folgender Zeile wird die Prozedur im Hauptforumlar deklariert:


// Und hier dann das Unterdrücken:
procedure TForm1.WMSysCommand(var Msg: TMessage);
begin
  if (Msg.wParam = SC_SCREENSAVE) then
    begin
      Msg.Result := 1;
      showmessage('Da kommt was an...')
    end
  else
    inherited;
end;

end.
Ciao
Mutier
  Mit Zitat antworten Zitat