• 9652阅读
  • 5回复

Qt4.3 for win32中的进程间通信方法 [复制链接]

上一主题 下一主题
离线blusherbear
 

只看楼主 倒序阅读 楼主  发表于: 2008-09-13
— 本帖被 XChinux 执行加亮操作(2008-09-14) —
现在在win32下用Qt做开发,版本是Qt4.3,这个版本中,Qt用来进行进程间通信的类似乎只有QProcess,数据通过stdin,stdout在进程间传输,听说Qt4.4版本中,signal/slot机制扩展到了进程间,不过现在还没用过。
那么,在Qt4.3下,怎样从一个进程中向另外一个进程中发送自定义的消息呢?
离线戒指无名
只看该作者 1楼 发表于: 2008-09-14
找到进程句柄,然后向进程sendmessage。

哈哈,我乱说的,我windows的编程
离线blusherbear

只看该作者 2楼 发表于: 2008-09-15
引用第1楼戒指无名于2008-09-14 02:30发表的  :
找到进程句柄,然后向进程sendmessage。
哈哈,我乱说的,我windows的编程

我目前也是这样做的。

在主进程中利用FindWindow函数获取对象进程的窗口句柄,SendMessage发送消息。
对象进程中,重载QApplication的 winEventFilter ( MSG * )函数,该成员函数处理window消息,在该函数中可以截获从主进程中发出的自定义消息。

用这种方法可以实现需要的功能,有个问题FindWindow需要指定窗口名称,因此窗口名称不能与其他窗口相同。

各位还有其他方法吗?拿出来大家讨论一下。
离线首席公民
只看该作者 3楼 发表于: 2008-09-17
用socket
不过更复杂  但是更通用
-----------------------------------------------
欢迎访问
http://blog.csdn.net/wjstone
-----------------------------------------------
离线uyoufaith

只看该作者 4楼 发表于: 2008-09-17
你看看QFileSystemWather 能不能帮你
以前我是用这个解决的、、

用QDUS也可以
离线blusherbear

只看该作者 5楼 发表于: 2008-09-17
引用第4楼uyoufaith于2008-09-17 13:22发表的  :
你看看QFileSystemWather 能不能帮你
以前我是用这个解决的、、
用QDUS也可以

用QFileSystemWather来监视指定文件,通过文件状态和内容变化达到进程间通信的目的。
QBUS是Qt中专门用来进行进程间通信的,不过,该功能只能在linux下使用,win32下没有该功能。
快速回复
限100 字节
 
上一个 下一个