VB .NET 如何接收和处理自定义WINDOWS消息?(不是"消息队列"里的消息,是系统消息)
snwxf 2006-06-12 02:19:45 程序环境:XP,VB.NET 2005
我有两个正在运行的程序,一个是一个简单的窗体程序,上面什么也没有,默认新建项目时产生的,只将它的窗体的“TEXT”属性改为“testform”,其它未作修改,我把它称为:WA1。另一个是一个控制台应用程序,我把它称为CA1,在这个控制台应用程序的Main()过程里,我加入了如下代码:
=============================================================================
'API定义部分省略
Sub Main()
Dim lh as Int32 = FindWindowEx(Nothing,Nothing,vbNullString,"testform")
Dim lstr as New String(Chr(0),50)
GetWindowText(lh,lstr,50)
Dim ms as Integer
ms = &H10 '关闭窗体的消息代码
SendMessage(ll,ms,Nothing,Nothing)
end sub
===================================================================================
我首先运行了,WA1 ,然后运行CA1 ,当CA1启动时,WA1正常结束,也就是说,我的CA1向WA1发送了一个“关闭”的WINDOWS的消息,代码为"&H10",并且WA1捕捉到了这个消息,并作出正确的动作了。
CA1向WA1传送的是标准WINDOWS消息,WA1处理的也是标准的WINDOWS消息,不需要我添加任何特殊的代码,现在,我的问题是:
我怎么自定义一个消息,由CA1发送到WA1后,WA1怎样来接收和处理这个自定义消息?
在VB6中可以更改默认窗口过程,在.NET中也是这样吗?或者有其它的什么办法来接收系统消息?
解决这个问题的原始目的是希望通过在两个WINDOWS程序之间传递消息来传送数据,我试着用磁盘文件来传送数据,但效果不太好,因为需要大量、频繁的传送数据。我还能采用什么方法在程序间共享数据呢?
谢谢大家!