Ich habe das dll-injection
www.delphi-forum.de/...ight=dll%20injection
probiert (an calc.exe und notepad.exe). Mit VCL gab es, wie erwartet, Probleme, daher hab ich das Ganze nonvcl getestet und wollte die Kommunikation mit der DLL per serversocket machen. Als .exe kompilliert hat das Grundgerüst funktioniert, als DLL ist der Port des Servers zwar offen aber er reagiert nicht darauf wenn ich ihm Befehle sende. Die Events wie onclientread werden nie erreicht. Bei anderen Komponenten werden die Events auch nicht erreicht. Wie kann man die Events nutzen?
Hier mein Testcode (wegen Platz und Übersicht ohne procedure senden):
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| type Tr = class(Tserversocket) public procedure lesen(Sender: TObject; Socket: TCustomWinSocket); procedure senden(var sendstring:string); constructor create; end;
constructor Tr.create; begin inherited create(nil); onclientread:=lesen; end;
procedure TR.lesen(Sender: TObject; Socket: TCustomWinSocket); var msg,tmp:string; begin msg:=Socket.ReceiveText; if msg = 'lalelu' then senden('ok'); end;
var r:tr;
begin r:=tr.create; r.Port:=33; try r.Open except end; ... ... end; |