Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi alle window messages an meine form abfangen? aber wie? (https://www.delphipraxis.net/11478-alle-window-messages-meine-form-abfangen-aber-wie.html)

unitedlb 7. Nov 2003 14:35


alle window messages an meine form abfangen? aber wie?
 
hallo!

ich würde ganz gerne jede window-message die an meine form kommt abfangen und dann weiterleiten.
rausgefunden habe ich bis jetzt das man das am besten mit einem hook macht -> SetWindowsHookEx.

für das abfangen von tastatur und mausereignissen habe ich hier auch schon einige threads gefunden...

danke.

mr2 7. Nov 2003 16:06

Re: alle window messages an meine form abfangen? aber wie?
 
Hallo,

einfach WndProc überschreiben.
Delphi-Quellcode:
  TForm1 = class(TForm)
  protected
    procedure WndProc(var Message: TMessage); override;
    { Protected-Deklarationen }
  public
...

procedure TForm1.WndProc(var Message: TMessage);
begin
  if Message.Msg = WM_USER
  then ShowMessage('WM_USER')
  else inherited;
end;
[Edit]Syntax-Highlighting geht wieder :)[/Edit]

unitedlb 7. Nov 2003 16:17

Re: alle window messages an meine form abfangen? aber wie?
 
kriege immer einen software gemeldet wenn ich es damit probiere.

habe allerdings auch eine lösung gefunden,
empfange mit aber anscheinend nicht alle nachrichten.
ich suche nach WM_USER+171

hier mein ansatz:

Delphi-Quellcode:
  public
    { Public declarations }
    function AppHookProc(var Message: TMessage): boolean;

    ...

function TForm1.AppHookProc(var Message : TMessage) : Boolean;
begin
...
listbox1.Items.add(inttostr(message.Msg));
...
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
application.HookMainWindow(form1.AppHookProc);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
application.UnHookMainWindow(form1.AppHookProc);
end;
ist da etwas falsch?

unitedlb 7. Nov 2003 16:37

Re: alle window messages an meine form abfangen? aber wie?
 
dein vorschlag funktioniert,
hatte nur etwas vergessen - vielen dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz