vb程序调用外部exe文件,使它启动后,(exe本身有按钮和文本框的窗口),vb程序怎样向它发出文本框自动输入文字(如:自动输入“123”)然后按钮(单击)命令。我知道要:
获得进程句柄-〉获得线程句柄-〉枚举线程所有窗口-〉枚举子窗口-〉比对文字-〉获得按钮句柄-〉发送鼠标单击消息请教具体的做法(最好有例子)

解决方案 »

  1.   

    正在学API
    还是帮你up一下
      

  2.   

    参考:
    http://expert.csdn.net/Expert/topic/2098/2098091.xml?temp=.936001
      

  3.   

    以下是捕获指定窗口并发送特定文本和消息的代码,修改一下即可。
    Option Explicit
    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 PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) 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 GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
    ’Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Private Const WM_SETTEXT = &HC
    Private Const WM_KEYDOWN = &H100
    Private Const VK_RETURN = &HDPrivate Sub Command1_Click()
        Dim hWindow As Long
        Dim hWindowEx As Long    hWindow = FindWindow(vbNullString, "CSDN.NET - 中国最大的开发者网络,为开发人员和相关企业提供全面的信息服务和技术服务 - Microsoft Internet Explorer")
        If hWindow Then
            hWindowEx = FindWindowEx(hWindow, ByVal 0&, vbNullString, vbNullString)
            
            hWindowEx = FindWindowEx(hWindowEx, 0&, "ReBarWindow32", vbNullString)
            hWindowEx = FindWindowEx(hWindowEx, 0&, "ComboBoxEx32", vbNullString)
            hWindowEx = FindWindowEx(hWindowEx, 0&, "ComboBox", vbNullString)
            hWindowEx = FindWindowEx(hWindowEx, 0&, "Edit", vbNullString)
            
            SendMessage hWindowEx, WM_SETTEXT, 0, ByVal "www.baidu.com.cn"
            PostMessage hWindowEx, WM_KEYDOWN, VK_RETURN, 0
        End If
    End Sub