Функция передачи строк (а заодно и числа) между программами через 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;
Взято с Vingrad.ru https://forum.vingrad.ru