http://www.delphitop.com/html/wangluo/1529.html

delphi 进程通讯之WM_COPYDATA 发送程序(SendData.exe)

作者:admin 来源:未知 日期:2011/4/5 0:07:13 人气:1199 标签:

进程通讯之WM_COPYDATA 发送程序(SendData.exe):

unit SendUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TFrmSend = class(TForm)
BtnSend: TButton;
procedure BtnSendClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmSend: TFrmSend;
implementation
{$R *.dfm}
{ TFrmRecv }
procedure TFrmSend.BtnSendClick(Sender: TObject);
var
_vMsg : string;
i, _vLen : Integer;
_vBuf : array of Char;
_vCopyData : TCopyDataStruct;
_vHandle: THandle;
begin
_vMsg := '我是来自另外一个进程的消息!';
_vLen := Length(_vMsg);
SetLength(_vBuf, _vLen);
for i := 0 to _vLen - 1 do
_vBuf[i] := _vMsg[i + 1];
_vCopyData.dwData := 100;
_vCopyData.cbData := _vLen;
_vCopyData.lpData := _vBuf;
_vHandle := FindWindow('TFrmRecv', '接收程序');
if _vHandle <> 0 then
SendMessage(_vHandle, WM_COPYDATA, 0, longint(@_vCopyData));
end;
end.

接收程序(RecvData.exe):

unit RecvUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TFrmRecv = class(TForm)
private
{ Private declarations }
procedure RecvMessage(var aMsg: TWMCOPYDATA); message WM_COPYDATA;
public
{ Public declarations }
end;
var
FrmRecv: TFrmRecv;
implementation
{$R *.dfm}
{ TFrmSend }
procedure TFrmRecv.RecvMessage(var aMsg: TWMCOPYDATA);
var
_vBufLen : Integer;
_vBuf : array of Char;
i : Integer;
_vStr : string;
begin
if aMsg.CopyDataStruct^.dwData = 100 then
begin
_vBufLen := aMsg.CopyDataStruct^.cbData;
System.SetLength(_vBuf, _vBufLen);
Move(aMsg.CopyDataStruct^.lpData^, _vBuf[0], _vBufLen);
_vStr := '';
for i := 0 to _vBufLen - 1 do
_vStr := _vStr + _vBuf[i];
ShowMessage('Len: ' + IntToStr(_vBufLen) + ' ' + _vStr);
end;
end;
end. 

delphi 进程通讯之WM_COPYDATA 发送程序(SendData.exe) 可用的更多相关文章

  1. QSharedMemory共享内存实现进程间通讯(IPC)及禁止程序多开

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QSharedMemory共享内存实现进程间通讯(IPC)及禁止程序多开     本文地址:h ...

  2. android中跨进程通讯的4种方式

    转自:http://blog.csdn.net/lyf_007217/article/details/8542359 帖子写的很好.看来一遍,试了一遍,感觉太有意义.必须转过来! android中跨进 ...

  3. Delphi实现获取句柄并发送消息的方法(FindWindow、FindWindowEx、EnumChildWindows、SendMessage)

    Delphi实现获取句柄并发送消息的方法 本文以实例形式详细说明了Delphi获取句柄并发送消息的方法,具体用法说明如下: 查找另外一个窗口的句柄: handle := FindWindow(nil, ...

  4. unix, PF_UNIX, AF_UNIX, PF_LOCAL, AF_LOCAL - 用于本地内部进程通讯的套接字。

    SYNOPSIS(总览) #include <sys/socket.h> #include <sys/un.h> unix_socket = socket(PF_UNIX, t ...

  5. v77.01 鸿蒙内核源码分析(消息封装篇) | 剖析LiteIpc(上)进程通讯内容 | 新的一年祝大家生龙活虎 虎虎生威

    百篇博客分析|本篇为:(消息封装篇) | 剖析LiteIpc进程通讯内容 进程通讯相关篇为: v26.08 鸿蒙内核源码分析(自旋锁) | 当立贞节牌坊的好同志 v27.05 鸿蒙内核源码分析(互斥锁 ...

  6. v78.01 鸿蒙内核源码分析(消息映射篇) | 剖析LiteIpc(下)进程通讯机制 | 百篇博客分析OpenHarmony源码

    百篇博客分析|本篇为:(消息映射篇) | 剖析LiteIpc(下)进程通讯机制 进程通讯相关篇为: v26.08 鸿蒙内核源码分析(自旋锁) | 当立贞节牌坊的好同志 v27.05 鸿蒙内核源码分析( ...

  7. android 史上最简单易懂的跨进程通讯(Messenger)!

    不需要AIDL也不需要复杂的ContentProvider,也不需要SharedPreferences或者共享存储文件! 只需要简单易懂的Messenger,它也称为信使,通过它可以在不同进程中传递m ...

  8. Chris Richardson微服务翻译:构建微服务之微服务架构的进程通讯

    Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关 构建微服务之微服务架构的进程通讯(本文) 微服务架构中的服务发现 微服务之事件驱动的数据管理 微服 ...

  9. Android为TV端助力 史上最简单易懂的跨进程通讯(Messenger)!

    不需要AIDL也不需要复杂的ContentProvider,也不需要SharedPreferences或者共享存储文件! 只需要简单易懂的Messenger,它也称为信使,通过它可以在不同进程中传递m ...

随机推荐

  1. pyinstaller打包总结

    建立py打包文件 if __name__ == '__main__': from PyInstaller.__main__ import run #opts=['music.py','--path=C ...

  2. VMware三种连接方式bridge, nat, host-only

    大家在安装完虚拟机后,默认安装了两个虚拟网卡,VMnet1和 VMnet8,其他的未安装(当然也可以手动安装其他的).其中VMnet1是host网卡,用于host方式连接网络的.VMnet8是NAT网 ...

  3. initlocation - 创建一个从属的 PostgreSQL数据库存储区

    SYNOPSIS initlocation directory DESCRIPTION 描述 initlocation 创建一个新的PostgreSQL从属数据库存储区.参阅 CREATE DATAB ...

  4. 一个显示 OpenCV Mat 图像的自定义 Qt 控件

    今天学习 Qt 的时候顺手写了一个,包含一个头文件 qcvdisplay.h 和一个源文件 qcvdisplay.cpp,因为这是 qt 默认的文件命名方式,在 Qt Designer 中提升控件时会 ...

  5. AIX中文件系统管理

    1.文件系统类型 AIX主要支持的文件系统有: JFS(Journaled  File  Systems)   日志型文件系统     JFS2(Enhanced  Journaled  File S ...

  6. Big Data(四)关于Hadoop的HA&CAP理论详解

    问题 思路: 主从集群:结构相对简单,主与从协作 主:单点,数据一致好掌握 问题: 单点故障,集群整体不可用 压力过大,内存受限 解决方案 单点故障: 高可用方案:HA(High Available) ...

  7. (转) ORACLE 正确删除归档日志的方法

    ORACLE 正确删除归档日志的方法 我们都知道在controlfile中记录着每一个archivelog文件的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中 ...

  8. Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion' has value '1.8', but '1.7'

    第一种方法:安装1.8之前安装了1.7,将1.7卸载就好了. 第二种方法:删掉Windows\System32下的java.exe, javaw.exe 就行了,但是安装的1.8的jdk会回到1.7的 ...

  9. Spring AOP 使用注解定义切面(转载)

    原文地址:http://www.jianshu.com/p/6f40dddd71a5 1.定义切面 下面我们就来定义一场舞台剧中观众的切面类Audience: package com.spring.a ...

  10. Maven灵活构建(转载)

    https://blog.csdn.net/sin90lzc/article/details/7552033