您的位置:首页 > 其它

跨进程发送消息数据

2016-09-05 17:47 323 查看


//1.发送窗体
procedure TForm2.Button1Click(Sender: TObject);
var
h: HWND;
Size: Integer;
CopyDataStruct: TCopyDataStruct;
begin
h := FindWindow(nil, '接收窗口'); { 按标题查找目标窗口 }
if h > 0 then
begin
Size := ByteLength(Edit1.Text) + 2;   { 多出的两个字节用于后面的 #0 }
CopyDataStruct.lpData := PChar(Edit1.Text + #0); { 要发送的字符串, #0 表示 PChar 结束}
CopyDataStruct.dwData := WM_COPYDATA;            { 指定消息类型 }
CopyDataStruct.cbData := Size;                   { 指定要发送的数据的大小 }
SendMessage(h, WM_COPYDATA, 0, Integer(@CopyDataStruct)); { 发送 }
end;
end;

//2.接收窗体
//2.1定义接收事件
protected
procedure WMCopyData(var Message: TWMCopyData); message WM_COPYDATA;

//2.2执行接收事件事
procedure TForm2.WMCopyData(var Message: TWMCopyData);
begin
Memo1.Lines.Add(PChar(Message.CopyDataStruct.lpData));
end;

//2.3改变窗体名
procedure TForm2.FormCreate(Sender: TObject);
begin
Caption := '接收窗口';
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: