如何通知另一个程序执行自己的方法 进程A已经在执行中现在进程B要通知A去立刻执行A自己的一个方法,要如何去实现??除了findwindow找到A窗口的句柄去sendmessage这个方法PS:A和B都是C++写的应用程序xiexie 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 除了findwindow找到A窗口的句柄去sendmessage这个方法 =====================这是一个很好的方法啊,为什么不能用 信号量/事件管道共享内存socket都可以用 看具体的需求 其实用共享内存也是可以的,不过A要开一个线程不停地监视共享内存的值,当B改变它时就说明要A工作了。同理用SOCKET等方法应该也可以 两个进行通信的方法有多种多样,就看这两个程序是否是你自己写的,如果是你自己写的就很好办了,采取任何一种方法都可以。1、通过得到窗口后发送消息。2、通过信号量/事件 3、命名管道 4、共享文件5、共享数据库表6、共享内存 7、通过Socket等等。 两个进行通信的方法有多种多样,就看这两个程序是否是你自己写的,如果是你自己写的就很好办了,采取任何一种方法都可以。 1、通过得到窗口后发送消息。 2、通过信号量/事件 3、命名管道 4、共享文件 5、共享数据库表 6、共享内存 7、通过Socket 等等。 ============总之只要A和B能共享某一个东西就可以通过检测这个东西的变化来通信 我用过命名管道和MailPort,单机挺好用的。分布式的就用Socket吧 用命名事件。A程序中创建命名事件,并在执行过程中不断检查事件的状态,或者用一个专门线程来等待该事件;B程序打开该事件,SetEvent。 其实,不要把问题复杂化,用简单方法能实现的为什么要用复杂的方法呢?SendMessage函数用在进程通信中要注意一些问题,这些问题注意到了,很好用的1.两个进程中都要用RegisterWindowMessage()函数注册同一个消息,如:在两个进程中都定义全局变量 UINT WM_Message1在InitInstance()中WM_Message1=RegisterWindowMessage("WM_Message1")2.要在接收进程的Top级窗口的DefWindowProc中或DefWindowProc中处理消息如:CMainFram的DefWindowProc中...if(message == WM_Message1) ... 我看上面很多方法都是在A中开个线程序进行监控内存数据/信号量/事件不知道哪个比较好,这样会不会很占cpu??另外一个简单的东西用socket是不是有点大材小用了,呵呵,关键是我还不太会socket 事件不耗cpu 没有事件的时候 线程在事件上等待cpu是空闲的看你实际应用的情况socket用来处理大量数据的交换不过两进程如果都在本机的话,用socket的情况一般可以通过用匿名或者命名管道解决 跨了进程怎么确保event是同一个??就是让A等待B创建的event 求读取网口数据的思路 急,急,急!MFC二进制读取 关于图像的问题 多文档视图中子视图如何在开始显示时就最大化? DLL中的全局变量问题。 *【!】C++学习者的群. 5634869 5634936 4580156 4580129 内详【!】* 第一次用MSXML就出错,大家给帮个忙! DNS报文如何解析?(请专家指导) 如何获取QQ空间说说列表 各位同仁,给我一个学VC++的理由先...... 如何获取指定目录下新增加的文件? 对话框编辑器的double变量怎么显示.00
=====================
这是一个很好的方法啊,为什么不能用
管道
共享内存
socket都可以用 看具体的需求
1、通过得到窗口后发送消息。
2、通过信号量/事件
3、命名管道
4、共享文件
5、共享数据库表
6、共享内存
7、通过Socket
等等。
1、通过得到窗口后发送消息。
2、通过信号量/事件
3、命名管道
4、共享文件
5、共享数据库表
6、共享内存
7、通过Socket
等等。
============
总之只要A和B能共享某一个东西就可以通过检测这个东西的变化来通信
SendMessage函数用在进程通信中要注意一些问题,这些问题注意到了,
很好用的
1.两个进程中都要用RegisterWindowMessage()函数注册同一个消息,
如:在两个进程中都定义全局变量 UINT WM_Message1
在InitInstance()中WM_Message1=RegisterWindowMessage("WM_Message1")
2.要在接收进程的Top级窗口的DefWindowProc中或DefWindowProc中处理消息
如:CMainFram的DefWindowProc中
...
if(message == WM_Message1)
...
不知道哪个比较好,这样会不会很占cpu??
另外一个简单的东西用socket是不是有点大材小用了,呵呵,关键是我还不太会socket
socket用来处理大量数据的交换
不过两进程如果都在本机的话,
用socket的情况一般可以通过用匿名或者命名管道解决