App之间的通信

Eniak 2008-05-13 09:24:45
同一台机器上,我有两个App,一个是App1另一个是App2

我想实现App1和App2之间的通信,交换其中的数据,怎么办呢?

这个应该是进程通信,还是线程通信呢?

另外,如果App2是一个对话框,我想让App1启动的时候也启动App2,但是不显示App2这个对话框,应该怎么把呢?
...全文
236 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
长尾巴的悟空 2008-05-21
  • 打赏
  • 举报
回复
呵呵,加油!
会思考的草 2008-05-21
  • 打赏
  • 举报
回复
进程之间通信方法太多了,就直接用内存映射文件好了。一边创建,另一边打开,然后设立一个事件来同步。这个就是那个经典的生产者消费者模型。
qiyuqing 2008-05-21
  • 打赏
  • 举报
回复
你可以把APP2用showwindows(sw_hide)。
然后之间定以一个消息。就可以实现了
Eniak 2008-05-20
  • 打赏
  • 举报
回复
谢谢大家的提醒。

我写了两个MFC的程序一个MDI一个DLG,就是想在MDI启动的时候DLG也启动,但然是这个DLG是不显示的,只有在点击MDI上面的一个按钮,才显示这个DLG,楼上说的那个CreateProcess应该加在那个方法里面呢?

还有,DefWindowProc 这是个什么东东,MFC的APP是不是已经封装了阿?
rjp203 2008-05-14
  • 打赏
  • 举报
回复
楼上几位说的方法都是可用的。
楼主所说的属于进程间通信的方式,一般在同一台机器上跑的两个程序要互相交换数据,我都是使用两种方法来进行通行的
1,使用WM_copydata消息,限制是两个进程必须是GUI应用程序,控制台应用程序是没办法接收消息的,呵呵
2,使用共享内存方式,这种方式最灵活了,而且速度也是最快的,貌似所有进程间通信的方法在底层都是使用共享内存来实现的,结合事件通知,想传什么数据直接往这块内存区里面扔,数据准备好之后,通知一下目标程序就可以了

新建进程,隐藏其窗口可以在程序里面直接调用CreateProcess函数,在被启动进程的要隐藏窗口类的DefWindowProc函数里面加上下面的代码就行了
if(message==133)
ShowWindow(SW_HIDE);
百试不爽~~~
masterz 2008-05-14
  • 打赏
  • 举报
回复
http://www.boost.org/doc/libs/1_35_0/doc/html/interprocess.html
junheng 2008-05-13
  • 打赏
  • 举报
回复
首先,建议巩固一下基本理论,进一步加深对线程和进程的认识;
对于进程通信,简单的方法是消息映射,既实现WM_COPYDATA消息进行进程间数据传递;或者是剪切板或全局存储区技术(不提倡,因为容易被其他进程破坏);或者是串口通信技术;当然匿名管道技术也可以,不过它可能要耗费更多的资源.应该根据你应用的具体情况,灵活选择.
对于最后一个问题,你可以使用ShellExecute函数或ShellExecuteEx函数或WinExec函数启动一个App2进程,在启动之后就把它隐藏起来即可.
比如在启动App2进程后:
HWND hWnd = ::FindWindow( NULL, csFileName );
if ( NULL != hWnd )
{
::ShowWindow( hWnd, SW_HIDE );
}
当然,以上所给的是最简单的例子,还有很多其它更好的方法.你可以再查找一下.
烨炜带火 2008-05-13
  • 打赏
  • 举报
回复
分开来:
1.两个程序之间的通信有几种方法,看你想片么做:
(1).用RegisterWindowMessage(..)进行两个进程序间的通信,具体用法可以相MSDN.
(2).用TCP/IP进行两个进程序间通信也可以,用Socket.
(3).写文件也行

2.一个进程启动另人一个进程:
用 : HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
或 ShellExecuteEx()
nShowCmd : 参数用于显示的类型,如果不显示,加上参数 SW_HIDE就行了

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧