如果两个程序都是自己的,
发送程序
procedure TForm1.DataOut();
var
  SendText: string;
  SendDataStruct: CopyDataStruct;
begin
  SendText := edit1.Text;
  SendDataStruct.cbData := length(Sendtext);
  SendDataStruct.lpData := @SendText[1];
  SendMessage(FindWindow(PCHAR('TFormrec'), PCHAR('Formrec')), WM_CopyData, Application.Handle, lparam(@SendDataStruct));
end;
接收程序
procedure tFormrec.DataIn(var DataMessage: TWMCopyData);
var
  ReceieveData : CopyDataStruct;
  temp: pchar;
  ReceieveStr : string;
begin
  ReceieveData := DataMessage.CopyDataStruct^;
  temp := ReceieveData.lpdata;
  ReceieveStr := string(temp);
  label1.caption:= ReceieveStr;
end;
如果正在运行的程序是别人的可执行程序,我就不会了

解决方案 »

  1.   

    一个例子,很简单,应该看得懂吧:)procedure TForm1.Button1Click(Sender: TObject);
    var
      TheHwnd : Hwnd;
      YourText : string;
    begin
      YourText := '你想发送什么字符串给新打开的记事本呢?:)';
      TheHwnd := FindWindowEx(FindWindow(nil, PChar('无标题 - 记事本')), 0, 'Edit', nil);
      SendMessage(TheHwnd, WM_SETTEXT , 255, longint(pchar(YourText)));
    end;
      

  2.   

    use findwindow() get handle