Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Функция передачи строк (а заодно и числа) между программами через SendMessage

01.01.2007
Function SendString(TargetWnd, SourceWnd: THandle; N: Integer; Const S: String): Integer;
Var
  CD
: TCopyDataStruct;
Begin
  CD
.dwData := N;
  CD
.cbData := Length(S);
 
If CD.cbData = 0  Then
    CD
.lpData := NIL
 
Else CD.lpData := @S[1];
 
Result := SendMessage(TargetWnd, WM_COPYDATA, SourceWnd, Integer(@CD));
End;
...
Procedure WMCopyData(Var Msg: TWMCopyData); Message WM_COPYDATA;
...
Procedure TForm1.WMCopyData(var Msg: TWMCopyData);
Var
 
{ Строка }
  S
: String;
 
{ Число }
  N
: Integer;
Begin
 
If (Msg.CopyDataStruct^).lpData = NIL Then S := '';
 
SetLength(S,Msg.CopyDataStruct^.cbData);
  S
:= String((Msg.CopyDataStruct^).lpData);
  N
:= (Msg.CopyDataStruct^).dwData;
End;

Автор: Rrader

Взято с Vingrad.ru https://forum.vingrad.ru