跨进程传递数据的做法

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/clever101/article/details/61924454

作者:朱金灿

来源:http://blog.csdn.net/clever101

 

             很多时候需要将数据从一个进程传递到另外一个进程,比如向另一程序窗口的编辑框写入内容,具体如下图:


  最先想到使用剪贴板,但是剪贴板需要目标进程的源码才能办到,否则无法复制剪贴板的数据。在没有目标进程的情况下有效办法是使用SendMessage函数,因为SendMessage函数是跨进程的。大致代码如下:

 HWND hTargetWnd = NULL; // 目标窗口句柄
// 获取目标窗口句柄,此步忽略
 CString str = "你要传递的字符串";
::SendMessage(hTargetWnd, WM_SETTEXT, NULL, (LPARAM)str.GetBuffer());
  str.ReleaseBuffer();

   还有一种注入法,就是在远程进程开辟一块内存VirtualAllocEx,写入新标题WriteProcessMemory,发消息WM_SETTEXT即可。不过我没有试过这种方法


参考文献:

 

1.vc++ 向另一程序窗口的编辑框写入内容

展开阅读全文

没有更多推荐了,返回首页