Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if (msg.wparam = SC_SCREENSAVE) then
begin
Msg.wParam := 0;
SendMessage (0, WM_SYSCOMMAND, SC_SCREENSAVE, -1) ;
Panel1.Color:= clRed; //nur Anzeige, dass Routine durchlaufen wird
Handled := true;
end;
end;
in die Routine wird hineingesprungen, allerdings geht die Sperre trotzdem rein. Ich seh das Ergebnis (in deinem Fall das rote LPanel) aber erst nach dem Entsperren.
Zitat:
Oder so:
Delphi-Quellcode:
private
{ Private-Deklarationen }
procedure WMSysCommand(var Msg: TMessage); message WM_SYSCOMMAND;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMSysCommand(var Msg: TMessage);
begin
Panel1.Color:= clRed; //nur Anzeige, dass Routine durchlaufen wird
if Msg.wParam = SC_SCREENSAVE then
Msg.Result := 1
else
inherited;
end;
Das hatte ich auch probiert, aber aus mir unerfindlichen Gründen wird nicht in die Prozedure gesprungen. Keine Ahnung warum das so ist.
Ich suche jetzt mal nach PowerCreateRequest, hoffentlich funktionierts damit. Danke