美文网首页
进程间通信之WM_COPYDATA

进程间通信之WM_COPYDATA

作者: 李里里Riss | 来源:发表于2017-03-10 16:07 被阅读0次

    在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯。常用的方法有

    -> 使用内存映射文件
    -> 通过共享内存DLL共享内存
    -> 使用SendMessage向另一进程发送WM_COPYDATA消息

    比起前两种的复杂实现来,WM_COPYDATA消息无疑是一种经济实惠的一中方法.

    使用方法:
    SendMessage(hwnd,WM_COPYDATA,wParam,lParam);
    其中,WM_COPYDATA对应的十六进制数为0x004A
    wParam设置为包含数据的窗口的句柄。lParam指向一个COPYDATASTRUCT的结构:
    typedef struct tagCOPYDATASTRUCT
    {
    DWORD dwData;//用户定义数据
    DWORD cbData;//数据大小
    PVOID lpData;//指向数据的指针
    }COPYDATASTRUCT;

    该结构用来定义用户数据。

    有时候WM_COPYDATA收不到信息的问题:
    1、SendMessage()函数中,wParam不能为空,有时候做测试时会出现,lParam可以为空;
    2、低权限进程不能想高权限发送该消息,同时也包括其他许多消息也是如此。

    相关文章

      网友评论

          本文标题:进程间通信之WM_COPYDATA

          本文链接:https://www.haomeiwen.com/subject/hcfogttx.html