![]() |
Window Message an eigenes Fenster abfangen
Hi, ich bekomme von einem anderem Programm eine Window Message geschickt, die heißt WM_INFRA_IO und hat den Wert: 49408
Wenn ich nun folgedes Versuche:
Delphi-Quellcode:
dann bekomme ich beim compilieren folgende Fehlermeldung:
const
WM_INFRA_IO = 49408; type TWndTestWnd = class(TForm) {...} private procedure MessageSend(var AMsg: TMessage); message WM_INFRA_IO; public { Public-Deklarationen } end;
Delphi-Quellcode:
Ohne Konstante und einfach nur die Zahl ergibt den selben Fehler. Also, wie schaff ich es diese Message abzufangen?
[Pascal Fehler] Unit1.pas(17): E2139 Ungültiger Botschaftsmethoden-Index
Eichhoernchen |
Re: Window Message an eigenes Fenster abfangen
nimm doch
Delphi-Quellcode:
oder "RegisterMessage" um eine gültige Message zu bekommen
const
WM_INFRA_IO = WM_USER + 0; |
Re: Window Message an eigenes Fenster abfangen
wie WM_USER + 0
das wäre doch 1024... aber ich will doch 49408 anfangen, ich kann WM_INFRA_IO nicht selbst bestimmen, dass hab ich nur festgestellt, dass diese Message vom anderem Programm an meins gesendet wird.. Es handelt sich hier um ne IR-Fernbedienung von Creative und man kann durch das anlegen einer Datei, die so heißt wie die Fensterklasse, die Tasten per Sendmessage an das Programm im Vordergrund mit der Fesnterklasse schicken... nur wird dies eben über diese WM_INFRA_IO Message gemacht. Ich guck mir dann mal dieses RegisterMessage an! Edit: seh ich richtig, dass diese durch registerMessage registrierten messages immer einen unterschiedlichen Wert haben? Das würde ja heißen, dass WM_INFRA_IO auch den Wert ändern könnte... also muss ich am Anfang per: WM_INFRA_IO = RegisterWindowMessage('WM_INFRA_IO') den richtigen Wert bestimmen, wie kann ich denn dann auf diese Message reagieren? |
Re: Window Message an eigenes Fenster abfangen
OK, sorry, hab nicht richtig gelesen .
|
Re: Window Message an eigenes Fenster abfangen
Muss Du das dann nicht in WndProc abfangen ?
Delphi-Quellcode:
const
WM_INFRA_IO = 49408; type TForm1 = class(TForm) protected procedure WndProc(var Message: TMessage); override; end; procedure TForm1.WndProc(var Message: TMessage); begin if (Message.Msg = WM_INFRA_IO) then begin // hier behandeln end; inherited; end; |
Re: Window Message an eigenes Fenster abfangen
achsoo.. ich kenne mich da nicht so aus... ich wusste nicht wie sowas geht, ich teste das mal aus
Edit: Juhuu klappt, hab es jetzt so gemacht:
Delphi-Quellcode:
type
TWndTestWnd = class(TForm) procedure FormCreate(Sender: TObject); private procedure WndProc(var Message: TMessage); override; public { Public-Deklarationen } end; var WndTestWnd: TWndTestWnd; WM_INFRA_IO: cardinal; implementation {$R *.dfm} { TForm1 } procedure TWndTestWnd.FormCreate(Sender: TObject); begin WM_INFRA_IO := RegisterWindowMessage('WM_INFRA_IO'); end; procedure TWndTestWnd.WndProc(var Message: TMessage); begin if (Message.Msg = WM_INFRA_IO) then begin showmessage('YEAHHH'); end; inherited; end; Dankeschön, aber woher soll man den auch wissen, was man alles überschreiben kann? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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