这个我会
过程是这样的
在你那个VC编的程序中要发消息的时候用sendmessgge函数
声明如下
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
第一个参数是接受消息窗口的hwnd,第二个参数是消息代码如果你要自定义消息可以发送
代号大于WM_USER = &H400的消息(wm_user在API常量可以查到),后两个参数是自己决定的只要和接受消息的程序协调好就可以了.
消息的发送方就可以了.接收比较麻烦.窗口程序中写入如下代码
Private Sub Form_Load()    prevWndProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
    SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf WndProc
End SubPrivate Sub Form_Unload(Cancel As Integer)
    SetWindowLong Me.hWnd, GWL_WNDPROC, prevWndProc
End Sub再引入一个模块写入如下代码
Public Const GWL_WNDPROC = (-4)
Public Const WM_USER = &H400Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic prevWndProc As LongFunction WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If Msg > WM_USER Then '在这里处理你的消息(嘿!!!!别看花眼了,向这看!!!!!!!)
    
    WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
End Function有几点要注意不要在WndProc中打开窗口,也不要在其中给其它控件设置属性.
还有,接收窗口一定要正常卸载就是你在调试的时候要用窗口的 X 关闭它而不能用VB的停止按钮,
好了就这些.

解决方案 »

  1.   

    用消息钩子呀!(API函数SetMessageHookEx)
      

  2.   

    谢谢两位!
    sixfooter:我按照你说的作了,不过一运行就退出VB了
    hyui:用HOOK好象太夸张了
      

  3.   

    谢谢sixfooter:你的程序稍稍有些遗漏,
    Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        If Msg = WM_USER+100 Then '在这里处理你的消息(嘿!!!!别看花眼了,向这看!!!!!!!)
           myfunction()
        else
           WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
        end if
    End Function
    这样实现的很好!
      

  4.   

    http://www.banasoft.com/DownLoad/BNHkLib.exe