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

Материал из DRKB

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

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;


Author: Rrader
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02136