1 //1.发送窗体
2 procedure TForm2.Button1Click(Sender: TObject);
3 var
4 h: HWND;
5 Size: Integer;
6 CopyDataStruct: TCopyDataStruct;
7 begin
8 h := FindWindow(nil, '接收窗口'); { 按标题查找目标窗口 }
9 if h > 0 then
10 begin
11 Size := ByteLength(Edit1.Text) + 2; { 多出的两个字节用于后面的 #0 }
12 CopyDataStruct.lpData := PChar(Edit1.Text + #0); { 要发送的字符串, #0 表示 PChar 结束}
13 CopyDataStruct.dwData := WM_COPYDATA; { 指定消息类型 }
14 CopyDataStruct.cbData := Size; { 指定要发送的数据的大小 }
15 SendMessage(h, WM_COPYDATA, 0, Integer(@CopyDataStruct)); { 发送 }
16 end;
17 end;
18
19 //2.接收窗体
20 //2.1定义接收事件
21 protected
22 procedure WMCopyData(var Message: TWMCopyData); message WM_COPYDATA;
23
24 //2.2执行接收事件事
25 procedure TForm2.WMCopyData(var Message: TWMCopyData);
26 begin
27 Memo1.Lines.Add(PChar(Message.CopyDataStruct.lpData));
28 end;
29
30 //2.3改变窗体名
31 procedure TForm2.FormCreate(Sender: TObject);
32 begin
33 Caption := '接收窗口';
34 end;

http://www.cnblogs.com/FKdelphi/p/5843118.html

跨进程发送消息数据(发送WM_COPYDATA消息,够简单的)的更多相关文章

  1. Windows跨进程设置文本和发送消息

    进程内设置文本,可以调用SetWindowText,跨进程这个会无效,应当如下:::SendMessage(hWnd, WM_SETTEXT, NULL, (LPARAM)文本内容); 注意这里不能使 ...

  2. Android AIDL Service 跨进程传递复杂数据

    黑夜 黑夜给了我黑色的眼睛,我却用它寻找光明~ 传值方式 AIDL是同意跨进程传递值的,一般来说有三种方式: - 广播:这样的算是比較常见的一种方式了,传递小数据不错 - 文件:这个是保存到文件里.然 ...

  3. VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的

    消息作用:    在进程间共享数据(内部通过创建内存映射文件) 消息介绍:需要用到的数据结构/类型:typedef struct tagCOPYDATASTRUCT {    ULONG_PTR dw ...

  4. 使用 WM_COPYDATA 在进程间共享数据

    开发中有时需要进程间传递数据,比如对于只允许单实例运行的程序,当已有实例运行时,再次打开程序,可能需要向当前运行的实例传递信息进行特殊处理.对于传递少量数据的情况,最简单的就是用SendMessage ...

  5. VC++ 在两个程序中 传送字符串等常量值的方法:使用了 WM_COPYDATA 消息(转载)

    转载:http://www.cnblogs.com/renyuan/p/5037536.html VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的 消息作用:  ...

  6. nrf51822-提高nordic ble数据发送速率

    讲解2点: 为什么 nordic的4.0协议栈中ble只能发送20字节的应用负载数据. 大量数据发送时如何提高发送速率 1:为何上层应用负载每次最多20字节 首先了解 4.0中链路层的包格式如下: P ...

  7. QT串口助手(四):数据发送

    作者:zzssdd2 E-mail:zzssdd2@foxmail.com 一.前言 开发环境:Qt5.12.10 + MinGW 实现的功能 串口数据的发送 ascii字符与hex字符的相互转换 自 ...

  8. WinForm实现跨进程通信的方法

    public class WinMessageHelper { private struct COPYDATASTRUCT { public IntPtr dwData; public int cbD ...

  9. C#中使用SendMessage在进程间传递数据的实例

    原文:C#中使用SendMessage在进程间传递数据的实例 1 新建解决方案SendMessageExample 在解决方案下面新建三个项目:CopyDataStruct,Receiver和Send ...

随机推荐

  1. 瑕疵(bug)严重性定义

    ======================== 严重性定义缺陷: o 最先进的–造成执行中断(应用程序崩溃),该功能未预期实现,测试等工作无法进行. o 急-事件是非常重要的,须要立即给予关注. o ...

  2. qt 状态栏

    有段时间没有写过博客了.假期去上海旅游,所以一直没有能够上网.现在又来到这里,开始新的篇章吧!   今天的内容主要还是继续完善前面的那个程序.我们要为我们的程序加上一个状态栏.   状态栏位于主窗口的 ...

  3. iOS 数据持久化(3):Core Data

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...

  4. 9.20 noip模拟试题

      Problem 1 双色球(ball.cpp/c/pas) [题目描述] 机房来了新一届的学弟学妹,邪恶的chenzeyu97发现一位学弟与他同名,于是他当起了善良的学长233 “来来来,学弟,我 ...

  5. post get

    /// <summary> /// Get方法 /// </summary> /// <param name="serverUrl">url地址 ...

  6. Java使用poi对Execl简单_读_操作

    public class ReadExecl { // private final String XLSX = ".xlsx"; // 2007以上版本 // private fi ...

  7. new Integer(1)和Integer.valueOf(1)的区别

    java.lang包中的Integer类是我们比较常用的类,比如以下代码: Integer a=new Integer(1) Integer a=Integer.valueOf(1); 两个都是得到一 ...

  8. linux的grep命令

    参考文档如下: linux grep命令 grep abb15455baeb4b23ab47540272ec47eb epps-sas.log | grep operateSettleBill exp ...

  9. copssh加bitvise

    只是简单记录下自己在成功使用的方案: 目的:为了突破公司对网站和qq的限制 具备的条件:一台云服务器.Copssh_4.1.0.bitvise ssh client 4.62.公司电脑客户端 一.首先 ...

  10. 【原】ios tableViewCell 自适应高度

    原文:http://www.cnblogs.com/A--G/p/4819051.html 前言:之前在做一个类似微博的小需求时候,用table view实现了微博文字和图片等等的基本展示,由于文字和 ...