不同进程间发送数据(DELPHI)

Posted on 2008-07-13 13:51  白兴科技  阅读(387)  评论(0编辑  收藏  举报
发送端
procedure TForm1.Button1Click(Sender: TObject);
var
  ds: TCopyDataStruct;
  hd: THandle;
begin
  ds.cbData := Length (Edit1.Text) + 1;
  GetMem (ds.lpData, ds.cbData ); //为传递的数据区分配内存
  StrCopy (ds.lpData, PChar (Edit1.Text));
  Hd := FindWindow (nil, 'Form2'); // 获得接受窗口的句柄,Form2为该窗体的Caption属性
  if Hd <> 0 then
    SendMessage (Hd, WM_COPYDATA, Handle, Cardinal(@ds)) // 发送WM_COPYDATA消息
  else
    ShowMessage ('目标窗口没找到!');
  FreeMem (ds.lpData); //释放资源
end;
{接收端}
首先要在interface段定义以下消息处理函数
procedure Mymessage(var t:TWmCopyData);message WM_COPYDATA;
implements
procedure TForm1.Mymessage(var t:TWmCopyData);
begin
  Edit1.text:=StrPas(t.CopyDataStruct^.lpData);//接受数据并显示。
end;

Copyright © 2024 白兴科技
Powered by .NET 9.0 on Kubernetes