Einzelnen Beitrag anzeigen

guste

Registriert seit: 23. Apr 2006
19 Beiträge
 
#9

Re: Kommunikation zwischen (injected) DLL und Programm

  Alt 23. Apr 2006, 20:31
Hallo,

also Dein Hauptprogramm könnte eine Broadcast Message senden, auf die Deine Dll mit dem Handle der eigenen Fensterprozedur antwortet.
Von diesem Zeitpunkt kennt das Hauptprogramm und die Dll die entsprechenden Handles.

Für Broadcast Message:

DBT_INIT: cardinal;
DBT_INIT := RegisterWindowMessage(MSG_DBT_INIT);
PostMessage(HWND_BROADCAST,DBT_INIT,self.handle,0) ;

Für Fensterprozedur Dll

procedure WndProc(var Message: TMessage);
begin
if Message.Msg = DBT_INIT then
begin
PostMessage(Message.LParam,DBT_INIT,dllWndHdl,0); // das ist trocken getippt, könnte auch WParam sein
end
end

dllWndHdl := AllocateHWnd(WndProc);

Gruesse,
Guido
  Mit Zitat antworten Zitat