两个Delphi进程之间可以利用sendmessage进行通信,而且sendmessage是一种阻塞式的通信方式,也就是说它发送完信息后必须要等到应答信息才会继续往下执行。
所以想到利用sendmessage在两个进程A、B间进行交互,也就是进程A向B发送一个消息,然后B对消息处理后把结果返回A。
但是目前我看到的例程中好像Delphi收到信息后可以直接完成应答过程,无需人工参与,所以无法把处理结果人工返回发送者。
所以我现在需要人工来做此应答信息,不知道具体如何实现?(包括接收消息、消息过滤、消息处理、消息应答过程)希望各位高手帮忙,最好能给出接收端的源代码,万分感谢!
所以想到利用sendmessage在两个进程A、B间进行交互,也就是进程A向B发送一个消息,然后B对消息处理后把结果返回A。
但是目前我看到的例程中好像Delphi收到信息后可以直接完成应答过程,无需人工参与,所以无法把处理结果人工返回发送者。
所以我现在需要人工来做此应答信息,不知道具体如何实现?(包括接收消息、消息过滤、消息处理、消息应答过程)希望各位高手帮忙,最好能给出接收端的源代码,万分感谢!
解决方案 »
- 新新手提问,delphi如何查询sql server 数据库中的数据
- 视频会议程序讨论
- 大家看看这段sql这么写行吗?
- 给分,非常简单的数据库远程连接问题
- Delphi大联盟-(最好的讨论,求助QQ群 号码:1463857)
- 这个procedure DataShow;加到哪,才能被其他的单元使用?????????
- ADO SQL SERVER 2000
- 如何根据传递过来的TWinControl参数,在dll里动态创建一个带焦点的控件,如TEdit,请看代码:
- 求助,用delphi实现ip包分析
- 关于新心学习delphi的一点问题。。望高手赐教!!!
- delphi 框架
- delphi 调用存储过程
A : whilt not sendmessage() do begin Application.Processmessage ;end;
B : 处理完后直接 Msg.Result := 1;另外,用Sendmessage的方式,如果不用 application.MainForm.Handle 这个句柄来发送消息的,而使用
Application.Handle作为句柄的话,有可能绕过消息队列,直接发给应用程序窗口,而WndProc这个过程只处理在消息队列中的消息,所以,如果覆盖WndProc这个过程,那你可能会收不到消息,往往一个应用程序有可能有多个窗口,所以你发消息时,最好指定一个主窗体,然后在这个窗体上写消息接收事件。对于发给Application.Handle的消息,用子类化的方式,就可以拦截到sendmessage发过来的消息
whilt not sendmessage() do begin Application.Processmessage ;end;
改为
whilt not boolean(sendmessage()) do begin Application.Processmessage ;end;