| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1762 人关注过本帖
标题:如何实现进程之间的通讯
取消只看楼主 加入收藏
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
 问题点数:0 回复次数:6 
如何实现进程之间的通讯
目前我知道进程之间的通讯有管道,邮槽,剪切版,但是这些通讯都是要有个客户段的,例如命名管道:服务端创建管道之后,客户端就要连接管道,然后服务端才可以写入数据,客户端读取数据,但是这样问题就来了,我现在是想用VC++来写个软件,然后往一个用C++Bulider写的软件的其中的几个Edit 控件发数据(文本类型),我可以用SPY++来获得那个程序的控件的句柄,进程,线程ID号,但是不知道应该用什么方法来实现进程间的通讯,因为我没有可能为了写这个东西去学C++BULIDER,这样太不实际了,而且我看见其他的软件可以这样实现的,就想自己弄一个看看,谢谢大家了

[此贴子已经被作者于2006-7-18 21:11:07编辑过]


搜索更多相关主题的帖子: 通讯 进程 
2006-07-18 21:07
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 

我突然想起了,不知道用SetWindowsHookEx这个函数设置钩子可不可以的


c++/C + 汇编 = 天下无敌
2006-07-18 21:13
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 

开始我自己搞混乱了,其实我是想获得某个应用程序的控件的句柄,我知道可以用FindWindow,和FindWindowEx,但是我用SPY++查到其他应用程序的窗口名称和类名然后传进FindWindow,但是都找不到句柄的,请问如果正确使用FindWindow


c++/C + 汇编 = 天下无敌
2006-07-19 10:15
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
谢谢斑竹,但是现在问题来了,我现在用VC建立了两个基于对话框的工程,一个是发送数据的,一个是接受数据的
我在发送数据的程序写了以下代码:
HWND hParent = ::FindWindowEx (NULL,NULL,NULL,"Recive");//Recive是接受数据的对话框窗口名
HWND hChild = ::FindWindowEx (hParent,NULL,NULL,""); //""是对话框EDIT控件的窗口名
int Ctrl = ::GetDlgCtrlID(hChild); //Ctrl是EDIT控件的ID
::SetDlgItemText (hChild,Ctrl,"123");
我程序运行的时候,我用SPY++检查过窗口的句柄,EDIT控件的ID,是完全正确的,但是不知道为什么不能传送数据,SetWidnowText我都用过, 但是SetWindowTexe却可以改变对话框的标题.EDIT控件的值就改不了,郁闷中.

[此贴子已经被作者于2006-7-19 12:01:51编辑过]


c++/C + 汇编 = 天下无敌
2006-07-19 11:56
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
SendMessage肯定不可以的了,因为我要传送的应用程序已经写好了,并且不是VC++写的,应用程序那里根本就不可能响应的到Send过去的消息,感谢斑竹的帮忙,郁闷中

c++/C + 汇编 = 天下无敌
2006-07-19 14:36
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
大感谢,我再想想....


c++/C + 汇编 = 天下无敌
2006-07-19 14:56
热情依然
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 
原来这样就可以了,SendMessage(hwnd,WM_SETTEXT,0, (LPARAM)str.GetBuffer())

c++/C + 汇编 = 天下无敌
2006-07-19 15:32
快速回复:如何实现进程之间的通讯
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017255 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved