Registriert seit: 16. Apr 2007
2.325 Beiträge
Turbo Delphi für Win32
|
Re: Fenster Handle ermitteln ohne Application.Title
23. Jun 2008, 14:24
Um das ganze nochmal näher zu erläutern:
Delphi-Quellcode:
const WM_RESPONSE = WM_USER + 6; //WM_USER + beliebig
type
TfrmMain = class(TForm)
procedure frmMainCreate(Sender: TObject);
protected
procedure WndProc( var Message: TMessage); override;
procedure ResponseMessage( var Message: TMessage); message WM_RESPONSE;
private
fOtherHandle: HWnd;
end;
implementation
var MySpecialMessage: Cardinal;
procedure TfrmMain.frmMainCreate(Sender: TObject);
begin
HandleNeeded; //wir brauchen ein Fenster-Handle
MySpecialMessage := RegisterWindowMessage(' Eindeutige String-Konstante');
SendMessage(HWND_BROADCAST, MySpecialMessage, Integer( Handle), WM_RESPONSE);
if fOtherHandle <> 0 then
begin
//es gibt eine andere Instanz, in dieser hat das Hauptfenster das Handle fOtherHandle
end;
end;
procedure TfrmMain.WndProc( var Message: TMessage);
begin
if Message.Msg = MySpecialMessage then
SendMessage( Message.WParam, Message.LParam, Handle, 0)
else
inherited;
end;
procedure TfrmMain.ResponseMessage( var Message: TMessage);
begin
fOtherHandle := Message.WParam;
end;
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
|