社区
Delphi
帖子详情
如何使用sendmessage发送WM_COPYDATA消息???
228
2000-07-27 09:11:00
sendmessage的第四个参数LPARAM为长整型,而WM_COPYDATA需传送一COPYDATASTRUCT类型,如何转换,怎么做???
...全文
372
4
打赏
收藏
如何使用sendmessage发送WM_COPYDATA消息???
sendmessage的第四个参数LPARAM为长整型,而WM_COPYDATA需传送一COPYDATASTRUCT类型,如何转换,怎么做???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zxtyhy
2000-09-21
打赏
举报
回复
定义TCopyDataStruct结构,分配内存,赋值,得到要传递到窗口的句柄,
发送消息,释放内存.
var
CDS: TCopyDataStruct;
HD: THandle;
begin
CDS.cbData:=Length(Edit1.Text)+1;
GetMem(CDS.lpData, CDS.cbData );
StrCopy(CDS.lpData, PChar(Edit1.Text));
HD:=FindWindow(nil, 'Form2');
if HD<>0 then
SendMessage(HD, WM_COPYDATA, Handle, Cardinal(@CDS))
else ShowMessage('The window is not found!');
RreeMem(CDS.lpData, CDS.cbData );
supershan
2000-09-19
打赏
举报
回复
listen...
zxtyhy
2000-09-18
打赏
举报
回复
有兴趣!
huntout
2000-07-27
打赏
举报
回复
LPARAM應為COPYDATASTRUCT類型指針!
WM_COPYDATA
wParam = (WPARAM) (HWND) hwnd; // handle of sending window
lParam = (LPARAM) (PCOPYDATASTRUCT) pcds; // pointer to structure with data
Parameters
hwnd
Handle to the window passing the data.
pcds
Pointer to a COPYDATASTRUCT structure that contains the data to be passed.
WM
_
COPY
DATA
消息
_
COPY
DATA
是一种非常强大却鲜为人知的
消息
。当一个应用向另一个应用传送数据时,
发送
方只需
使用
调用
SendMessage
函数,参数是目的窗口的句柄、传递数据的起始地址、
WM
_
COPY
DATA
消息
。接收方只需像处理其它
消息
那样处理
WM
_
COPY
DATA
消息
,这样收发双方就实现了数据共享。
WM
_
COPY
DATA
是一种非常简单的方法,它在底层实际上是通过文件映射来实现的。它的缺点是灵活性不高,并且它只能用于Windows平台的单机环境下。
官方VB.net
WM
_
COPY
DATA
进行进程间资源共享的例子
官方VB.net 通过
WM
_
COPY
DATA
消息
机制,进行进程间资源共享的例子
进程间
使用
copy
data
完成通信
进程间通信最简单的方式就是
发送
WM
_
COPY
DATA
消息
。
发送
WM
_
COPY
DATA
消息
:
SendMessage
(接收窗口句柄,
WM
_
COPY
DATA
, (WPARAM)
发送
窗口句柄, (LPARAM)&
Copy
Data
); 其中的
Copy
Data
为
COPY
DATA
STRUCT结构类型,该结构定义如下: typedef struct tag
COPY
DATA
STRUCT { DWORD dw
Data
; // Specifies
data
to be passed to the receiving application. DWORD cb
Data
; //Specifies the size, in bytes, of the
data
pointed to by the lp
Data
member. PVOID lp
Data
; // Pointer to
data
to be passed to the receiving application. can be NULL. }
COPY
DATA
STRUCT, *P
COPY
DATA
STRUCT; 接收
WM
_
COPY
DATA
消息
: 只要用
COPY
DATA
STRUCT *p
Copy
Data
= (
COPY
DATA
STRUCT*)lParam;就可以了。接收方应认为这些数据是只读的。 由于
发送
方在接收方处理
WM
_
COPY
DATA
消息
完毕前都是处于等待中,所以接收方应当尽快处理
WM
_
COPY
DATA
消息
。 本资源中user1需要先
发送
,携带有主窗口句柄,然后recv根据窗口句柄回复,详情见代码
利用
WM
_
COPY
DATA
传递
消息
很好的一个例子
Inter-Process Communication Using
WM
_
COPY
DATA
,很好的一个例子,大家可以参考、学习。
PoC-Inject-
Data
-
WM
_
COPY
DATA
:一个微小的PoC,可
使用
WM
_SETTEXT +
WM
_
COPY
DATA
+ SetThreadContext将代码注入并执行到explorer.exe中
PoC注入数据
WM
_
COPY
DATA
一个微小的PoC,可
使用
WM
_SETTEXT +
WM
_
COPY
DATA
+ SetThreadContext将代码注入并执行到explorer.exe中 PoC code: Inject Explorer.exe process. APIs used:
SendMessage
(
WM
_SETTEXT),
SendMessage
(
WM
_
COPY
DATA
), SetThreadContext, OpenProcess, VirtualQueryEx, SuspendThread, ResumeThread, Toolhelp apis. This code uses
WM
_SETTEXT and
WM
_
COPY
DATA
messages to cause our controlled
data
to be copied into target proce
Delphi
5,391
社区成员
262,737
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章