delphi消息发送字符串
delphi消息发送字符串
其实不论什么方法,归根揭底都是通过传递对象的指针来达到效果的。
方法一:
procedure SendString(strMSG: string);
var
Data: tagCOPYDATASTRUCT;
pBuf: PChar;
begin
GetMem(pBuf, Length(strMSG) + 1);
try
ZeroMemory(pBuf, Length(strMSG) + 1);
StrPCopy(pBuf, strMSG);
Data.cbData:= Length(strMSG);
Data.dwData:= Length(strMSG);
Data.lpData:= pBuf;
SendMessage(hTargetWin, WM_COPYDATA, Integer(Self.Handle), Integer(@Data));
finally
FreeMem(pBuf);
end;
end;
procedure WMCopyData(var MSG: TMessage); message WM_COPYDATA;
procedure TForm1.WMCopyData(var MSG: TMessage);
var
Data : ^tagCOPYDATASTRUCT;
strMSG: string;
begin
Data:= Pointer(Msg.lParam);
strMSG:= StrPas(Data.lpData);
ShowMessage(strMSG);
end;
方法二:
TMyRecord=record s:string; end;
tt:TMyRecord;
var tt:TMyRecord; begin tt.s:='s2343243'; PostMessage(handle,WM_My,integer(tt),5); end;
发送消息,由于参数只能是一个integer,你这样发只能发4个字节,所以要改成发指针,比如:
var tt:TMyRecord; begin tt.s:='s2343243'; PostMessage(handle,WM_My,integer(@tt),5); end;
接收的时候当然也不能用原来的方法:My:=TMyRecord(msg.WParam);这样取回来了,也要把TMyRecord声明成指针:
type PMyRecord=^TMyRecord; var My:PMyRecord; my:=PMyRecord(msg.WParam);
http://www.delphitop.com/html/jiqiao/2170.html
delphi消息发送字符串的更多相关文章
- Delphi窗体间发送消息或字符串
在Delphi 开发中,常常应用到窗体消息传递,以达成某种操作要求,以下列举一个应用的例子,供大家参考. 自定义过程/函数方法://发送字符串到指字句柄的窗口中 (接收窗体需用发送时的消息常量WM_C ...
- delphi代码实现窗口最小化,最大化,关闭消息发送
分类: 代码实现窗口最小化,最大化,关闭 var hwnd: hwnd;//句柄 PostMessage(hwnd,WM_SYSCOMMAND, SC_MINIMIZE,0); //最小化Post ...
- Delphi 消息函数 SendMessage函数
Delphi中SendMessage使用说明 SendMessage基础知识 函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.而函数Po ...
- 终于懂了:Delphi消息的Result域出现的原因——要代替回调函数的返回值!(MakeObjectInstance不会帮助处理(接收)消息回调函数的返回值)
MakeObjectInstance应该不会帮助处理(接收)消息回调函数的返回值,可是有时候又确实需要这个返回值,这可怎么办呢?我是看到这段文字的时候,想到这个问题的: 当WM_PAINT不是由Inv ...
- Unity 消息发送机制 解析
该博客,只为解析,解析,解析,已经整理好,已经整理好,已经整理好.代码核心原理套用网上最流行的那一套,也是最常用游戏开发适用的消息机制.这里面加上自己的一些优化,极大的修正(哈哈),实测,没问题.万一 ...
- iOS 消息发送与转发详解
Objective-C 是一门动态语言,它将很多静态语言在编译和链接时期做的事情,放到了运行时来处理.之所以能具备这种特性,离不开 Runtime 这个库.Runtime 很好的解决了如何在运行时期找 ...
- C# Socket异步实现消息发送--附带源码
前言 看了一百遍,不如动手写一遍. Socket这块使用不是特别熟悉,之前实现是公司有对应源码改改能用. 但是不理解实现的过程和步骤,然后最近有时间自己写个demo实现看看,熟悉熟悉Socket. 网 ...
- python+mitmproxy抓包过滤+redis消息订阅+websocket实时消息发送,日志实时输出到web界面
本实例实现需求 在游戏SDK测试中,经常需要测试游戏中SDK的埋点日志是否接入正确.本实例通过抓包(客户端http/https 请求)来判定埋点日志是是否接入正确. 实现细节:使用django项目,后 ...
- runtime - 消息发送(objc_msgSend)
http://www.jianshu.com/p/95c8cb186673 在OC中,我们对方法的调用都会被转换成内部的消息发送执行对objc_msgSend方法的调用,掌握好消息发送,可以让我们在编 ...
随机推荐
- javascript json的使用
转自:http://blog.csdn.net/lushuaiyin/article/details/7061483 对于js使用json,首先到官网拷贝json.js文件,地址http://www. ...
- iOS中session和cookie的使用
获取session的方法: #pragma mark - 获取session -(NSString *)getsession{ NSHTTPCookieStorage *cookieStorage = ...
- 第三方库Mantle的简单实用
1. 测试时, 可以使用下面这个网址及代码来测试, 里面有模型,数组,以及字典, 还可以有long long 转NSDate, string 转 int等. NSURL *url = [NSURLU ...
- Mysql—数据库管理与表管理
数据库管理 表管理 删除表
- Linux中的硬链接和软链接的概念、区别及用法
概念: 硬链接(hard link): A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指 ...
- 渗透测试学习 十七、 XSS跨站脚本漏洞详解
一般用途:拿cookie进后台,将后台地址一起发送过来 特点:挖掘困难,绕过困难 大纲: XSS漏洞基础讲解 XSS漏洞发掘与绕过 XSS漏洞的综合利用 XSS漏洞基础讲解 XSS介绍: 跨站脚 ...
- Centos7下安装配置keepalived
这里用的是两台设备做高可用 master服务器ip地址:192.168.12.78 slave服务器ip地址:192.168.12.79 虚拟ip(VIP,一个尚未占用的内网ip即可)地址:192.1 ...
- python 读写.tar.gz文件 -- UnicodeDecodeError
在用pip install 安装库的时候,偶尔会出现编码错误(如:UnicodeDecodeError: 'gbk' codec can't decode byte),对此我们可先将包下载下来(一般为 ...
- monkey事件
一.操作事件简介 monkey所操作的随机事件流中包含11大事件,分别是触摸事件.手势事件.二指缩放事件.轨迹球事件.屏幕旋转事件.基本导航事件.主要导航事件.系统按键事件.启动activity事件. ...
- C++ class内的 < 和 > 重载,大于号,小于号,重载示例。
#include <iostream> // overloading "operator = " outside class // < 和 > 是二元操作符 ...