![]() |
Application Handle einer fremden Application bekommen?
Hallo,
wir haben hier gerade ein kleines Problem. Und zwar benötigen wir das Application Handle einer fremden Application, wissen aber nicht wie man das bekommt. mit FindWindow(nil,'Fremde Application') bekommt man zwar das FensterHandle, das genügt aber in diesem Fall nicht. Also weis zufällig irgendjemand wie ich an das Application Handle der Fremden Application komme? Danke schonmal |
Re: Application Handle einer fremden Application bekommen?
Zitat:
vllt sagst du kurz was du mit dem handle anstellen willst das der von FindWindow nicht reicht. |
Re: Application Handle einer fremden Application bekommen?
OK, also:
Aufgabe ist: Das ein Itemindex einer RadioGroup der einen Anwendung and eine Radiogroup der anderen Anwendung gechickt wird. Es geht zwar auf der einen Seite mit Senderanwendung:
Delphi-Quellcode:
Empfängeranwendung:
SendMessage(ParentHandle,WM_SELECTRADIOBUTTON,RadioGroup.ItemIndex,0);
Delphi-Quellcode:
das FormularHandle übergebe, allerdings habe ich in einem Buch eine andere Möglichkeit gesehn bei der man das ApplicationHandle übergeben muss, was dann so aussieht:
procedure GetItemIndex(var msg: TMessage); message WM_SELECTRADIOBUTTON;
. . procedure Ttf_empfang.GetItemIndex(var msg: TMessage); begin RadioGroup1.ItemIndex:=msg.WParam; end; Senderanwendung:
Delphi-Quellcode:
Empfängeranwendung:
SendMessage(ParentHandle,WM_SELECTRADIOBUTTON,RadioGroup.ItemIndex,0);
Delphi-Quellcode:
procedure GetItemIndex(var Msg :TMsg;var Handeled : Boolean);
. . procedure Ttf_empfang.GetItemIndex(var Msg :TMsg;var Handeled : Boolean); begin case Msg.Message of WM_SELECTRADIOBUTTON : RadioGroup1.ItemIndex:=Msg.wParam; end; end;
Delphi-Quellcode:
so das wars. Bei dem ersten Beispiel brauche ich wie gesagt das Fensterhandle und bei dem zweiten das Application Handle.
procedure Ttf_empfang.FormCreate(Sender: TObject);
begin Application.OnMessage:=GetItemIndex; end; Ich weis das ich es ja auch mit dem ersten machen kann, mich würde aber trotzdem interessieren wie ich an ein ApplicationHandle drankommen kann |
Re: Application Handle einer fremden Application bekommen?
Kleiner Tip: TForm <> TApplication ...
|
Re: Application Handle einer fremden Application bekommen?
Soweit das TForm<>Tapplication ist war ich vor zwei Jahren in der Schule auch schonmal...
Aber das hilft mir bei meinem Problem im moment nicht wirklich weiter. Ich kann ja nicht
Delphi-Quellcode:
machen.(Können schon, funzt aber nicht)
FindWindow('TApplication','Fremde Anwendung');
|
Re: Application Handle einer fremden Application bekommen?
Du kannst dir doch mit RegisterWindowMessage eine systemweit eindeutige Fenstermeldung generieren und diese dann aus der Senderanwendung "broadcasten", also an alle Fenster schicken (HWND_BROADCAST).
|
Re: Application Handle einer fremden Application bekommen?
Bekomm ich so das Anwendungs Handle?
Ich glaub wenn ich das schon an alle "Fenster" schicke benötige ich auch das "Fenster" Handle und nicht das Anwendungshandle oder? Ziel ist es ja aber das Anwendungshandle zu bekommen. |
Re: Application Handle einer fremden Application bekommen?
Zitat:
Zitat:
|
Re: Application Handle einer fremden Application bekommen?
Es funzt aber trotzdem nicht, Windows schickt es an alle FensterHandles, Aber die fremde Anwendung wartet auf ihr Applicationhandle.
Vorrausgesetzt : PostMessage(HWND_BROADCAST,WM_SELECTRADIOBUTTON,rg _nachricht_steuer.ItemIndex,0); ist richtig. :?: |
Re: Application Handle einer fremden Application bekommen?
Du solltest NIE eine Meldung, deren Nummer du dir einfach selbst ausgedacht hast, an fremde Fenster schicken (darum mein Vorschlag mit RegisterWindowMessage). HWND_BROADCAST kriegen alle Fenster - wer weiß, wie die die Nummer interpretieren...
Wenn du es verschickst aber in Application.OnMessage Nichts empfängst, dann machst du vielleicht irgendetwas anderes falsch (Konstanten gleich definiert???). [Nachtrag] Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 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