请教:已知另外一个程序里的按钮句柄,如何通过vb程序里代码控制另外一个程序里的按钮单击事件?用什么api函数?怎么用?
恳请高手贴出代码!

解决方案 »

  1.   

    拦截按钮单击事件的消息PostMessage,SendMessage,然后再处理
      

  2.   

    怎么拦截按钮单击事件的消息PostMessage,SendMessage,然后再处理?
      

  3.   

    首先应该添加以下声明:
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As String) As LongPrivate Const BM_CLICK = &HF5'然后使用以下代码:对按钮发送BM_Click消息点击;至于传入数据使用SendMessageByString,这个在此不多说了
    Dim hBtn As Long
    Dim hParent As Long
    hParent = FindWindow("按钮父窗口的类名", "按钮的父窗口名称")
    hBtn = FindWindowEx(hParent, Null, Null, "按钮的标题")
    SendMessage hBtn, BM_CLICK, 0, 0
      

  4.   

    控制另外一个程序里的按钮单击事件?
    --------------
    那个按牛的事件已经写好了,你是想让它的程序不执行原来的事件,而是要执行你的事件,是不是?
    如果是,那就是用 junki(『.NET技术争霸天下』) 的方法,至于怎么拦截消息,待研究
      

  5.   

    谢谢:
    winehero(编程人生)
    junki(『.NET技术争霸天下』) 
    zyoujie() 
    faysky2() 编程道上有大家,一路走来真好!