
呵呵。这个很简单,如果接收方只是做出收到消息的提示而已。
不过,问题深入一点的话,如果需要接收方反馈信息给发送方的话,就需要做点东西了。或者,发送方需要讲本地进程的一些变量的值发送给接收方的话,那也许要做些东西。
因为,他们不能跨进程相互访问对方的数据。
就像有人试图用 SendMessage( WM_GETTEXT )来访问远进程的编辑框内的数据一样。直接这么用是不能成功的。想这么做的话,必须:
方法1、使用内核对象等机制来共享数据。
方法2、注入代码到远进程来实现访问,访问后再撤销。
不知道楼主需要的是不是相互发送数据,还是仅仅是发送消息而已。
====================================================
由于最近比较忙,给你写例子的可能性不是很大。抱歉。
不过可以给你一些提示:
方案1:
发送方:
1、首先需要知道接受方处理消息的窗口句柄。
方法有很多,可以枚举所有窗口(EnumWindow),然后判断标题是不是接受方的窗口标题,也可以直接由发送方来创建接受方的进程(CreateProcess),然后获得接受方进程的窗口句柄。
2、使用SendMessage( 目标hWnd, 自定义的消息ID, 0L, 0L )向接受方发送消息。
如果不需要等待处理结束才返回,可以使用PostMessage,而不是SendMessage
3、接受方的消息处理过程中添加对自定义消息的处理过程。
这种方法不能发送数据,仅仅能发送消息而已。
方案2:
1、创建内核对象,比如CMapFile。定义某种数据结构比如队列。
2、发送方或者接受方,谁先运行谁就创建该内核对象(后运行的是打开而不是创建,方法是首先试图打开,如果失败,则创建)并且使用相同的名字。
3、发送方向对象中填写数据。
4、接受方利用一个单独的线程(或者定时器)检测内核对象中的数据,一旦发现有数据,就取出,并且从内河对象中删除该数据。
这种方法不仅可以发送消息,而且可以发送任何东西。
以上就是关于Android跨进程通信全部的内容,包括:Android跨进程通信、Android 使用Messenger实现跨进程之间通信、高手帮忙 编写一个向其它程序发送消息的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)