在程序设计中,有时需要在两个独立的进程间实现通信,例如一个程序的升级进程Update.exe在升级完成后需要通知主程序关闭以替换主程序文件。进程间通信有多种方法,如文件监测法、注册表监测法、共享内存法和SendMessage发送全局消息法等,前两种效率很低,后两种效率高但过于复杂。
经过一番尝试,本人发现了一种既高效又容易实现的进程间通信方法,现阐述原理如下并附源码。
接收端设置一个不可见并有特定内容的文本框,做为发送端的寻找对像。发送端启动后通过函数FindWindow和FindWindowEx寻找接收者窗体并接着寻找接收文本框,获得句柄。发送端发送信息时,通过找到的句柄向接收者用SendMessage发送设置标题的消息,接收端收到消息后会自动更改文本框的标题属性从而触发Change事件,在Change事件过程中编写代码获得文本框中的内容并复位文本框内容以准备下次接收信息。至此一个发送和接收的过程完成。
源码
示例_进程间通信.rar
15.72KB
RAR
242次下载
200字以内,仅用于支线交流,主线讨论请采用回复功能。