... 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