Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: Messages abfangen/mitlesen

  Alt 21. Jan 2016, 20:29
Mir ist das zu aufwendig. Also werde ich den "Packer" auch als (unsichtbares) VCL machen. Ich habe bereits gesucht. Und da ich bloß Strings austauschen will, wurde ich hier fündig. Dieser Code funktioniert. Ich erhalte - innerhalb ein und desselben Programms - eine Zeichenkette mit Inhalt.

Ich habe nun versucht, das Ganze in 2 Programm zu splitten. Aber irgendwie kommt immer nur ein leerer String an:
Delphi-Quellcode:
const
   MY_MESSAGE = WM_USER + 4242;

type
   TForm1 = class(TForm)
     Edit1: TEdit;
     Button1: TButton;
     procedure Button1Click(Sender: TObject);
end;

var
   Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var
   H               : HWND;
   txt            : String;
begin
   txt:= Edit1.Text;
   SendMessage(FindWindow('TForm1', 'Packer'), MY_MESSAGE, 0, DWORD(PChar(txt)));
end;
und der Empfänger
Delphi-Quellcode:
Const
   MY_MESSAGE   = WM_USER + 4242;

Type
   TForm1      = Class(TForm)
                     Memo1   : TMemo;
                 Private
                     Procedure GotMessage(Var Msg: TMessage); Message MY_MESSAGE;
                 End;

Var
   Form1   : TForm1;

Implementation

{$R *.dfm}

Procedure TForm1.GotMessage(Var Msg: TMessage);
Var
   MsgStr         : PChar;
   txt            : String;
Begin
   MsgStr:= PChar(msg.lParam);
   Msg.Result:= 1;
   ShowMessage(MsgStr);   // exakt der gleiche Code - trotzdem leere Zeichenkette

   With Memo1.Lines Do
   Try
      BeginUpdate;
      txt:= String(MsgStr);
      Add(txt);
   Finally
      EndUpdate;
   End;
End;
Was mache ich falsch?
Alex Winzer
  Mit Zitat antworten Zitat