我要对另一程序(vb写的)窗口中的 多个textbox,多个Combobox,和多个commandbox进行赋值。比如窗口的样子:
----------------窗体:(“测试”)   ThunderRT6FormDC
用户:text1(0)                     ThunderRT6TextBox
年龄:text1(1)                     ThunderRT6TextBox
性别:Combo(0)                     Edit
密码:text1(2)                     ThunderRT6TextBox
所属地区:Combo(0)                 Edit
确定Command1(0)                    ThunderRT6CommandButton
取消Command1(1)                    ThunderRT6CommandButton
----------------------------------请把:"张三,25,男,*****,华东,OK"   对号入座!~

解决方案 »

  1.   

    用sendmessage发送消息wm_settext就可以了
      

  2.   

    给点例子行不?……唉,算了,我自己来!
    Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function FindWindow Lib "user32.dll" 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 GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Private Const BM_CLICK = &HF5
    Private Const WM_SETTEXT = &HC
    Const WM_GETTEXT = &HD
    Const WM_GETTEXTLENGTH = &HE
    Const wm_setfocus = &H7 Const CB_GETCOUNT = &H146
     Const CB_FINDSTRING = &H14C
     
    '以下函数实现 消息传递功能 ::::
    '---------------------------------------
    Public Str_Type As String
    Public Str_Number As String
    Public Sub SendToWindowsText(FormName As String, Stxt1 As String, Stxt2 As String, Scmb1 As String, Scmb2 As String)
    'Stxt1  最底下的Text控件参数
    'Stxt2  ……
    'Scmb1  最底下的combobox控件参数
    'Scmb2  ……
    '-----------------------------------------
    Dim Hwt As Long
    Dim Htxt01 As Long, Htxt02 As Long, Htxt03 As Long, Htxt04 As Long, Htxt05 As Long, Htxt06 As LongHwt = FindWindow(vbNullString, FormName)
    If Hwt Then
    '取Text控件
    Htxt01 = FindWindowEx(Hwt, ByVal 0&, "ThunderRT6TextBox", vbNullString)
    Htxt02 = FindWindowEx(Hwt, Htxt01, "ThunderRT6TextBox", vbNullString)
    Htxt03 = FindWindowEx(Hwt, Htxt02, "ThunderRT6TextBox", vbNullString)
    Htxt04 = FindWindowEx(Hwt, Htxt03, "ThunderRT6TextBox", vbNullString)
    Htxt05 = FindWindowEx(Hwt, Htxt04, "ThunderRT6TextBox", vbNullString)
    Htxt06 = FindWindowEx(Hwt, Htxt05, "ThunderRT6TextBox", vbNullString)SendMessage Htxt01, WM_SETTEXT, 0, ByVal Stxt1
    SendMessage Htxt02, WM_SETTEXT, 0, ByVal Stxt2
    '取combobox控件Dim a As Long, b As Long
    a = FindWindowEx(Hwt, ByVal 0&, "ThunderRT6ComboBox", vbNullString)
    b = FindWindowEx(a, 0&, "Edit", vbNullString)
    SendMessage a, WM_SETTEXT, 0, ByVal Scmb1
    Dim c As Long, d As Long
    c = FindWindowEx(Hwt, a, "ThunderRT6ComboBox", vbNullString)
    d = FindWindowEx(c, 0&, "Edit", vbNullString)
    SendMessage c, WM_SETTEXT, 0, ByVal Scmb2End If
    End Sub
    Public Sub GetFromWindowsText(FormName As String)
    Dim aa As String * 256, bb As String * 256
    Dim cc As String * 256, dd As String * 256
    Dim ee As String * 256, ff As String * 256
    Dim Hwt As Long
    Dim Htxt01 As Long, Htxt02 As Long, Htxt03 As Long, Htxt04 As Long, Htxt05 As Long, Htxt06 As Long
    Hwt = FindWindow(vbNullString, FormName)
    If Hwt Then
    '取Text控件
    Htxt01 = FindWindowEx(Hwt, ByVal 0&, "ThunderRT6TextBox", vbNullString)
    Htxt02 = FindWindowEx(Hwt, Htxt01, "ThunderRT6TextBox", vbNullString)
    Htxt03 = FindWindowEx(Hwt, Htxt02, "ThunderRT6TextBox", vbNullString)
    Htxt04 = FindWindowEx(Hwt, Htxt03, "ThunderRT6TextBox", vbNullString)
    Htxt05 = FindWindowEx(Hwt, Htxt04, "ThunderRT6TextBox", vbNullString)
    Htxt06 = FindWindowEx(Hwt, Htxt05, "ThunderRT6TextBox", vbNullString)
    '取值
     SendMessage Htxt01, WM_GETTEXT, 255, ByVal aa
     SendMessage Htxt02, WM_GETTEXT, 255, ByVal bb
     SendMessage Htxt03, WM_GETTEXT, 255, ByVal cc
     SendMessage Htxt04, WM_GETTEXT, 255, ByVal dd
     SendMessage Htxt05, WM_GETTEXT, 255, ByVal ee
     SendMessage Htxt06, WM_GETTEXT, 255, ByVal ff
     
     Str_Type = Left(cc, 2) '种类
     Str_Number = Left(dd, 6) '牌号
     SendMessage Htxt05, wm_setfocus, 0, 0 '传递光标
    End If
    End Sub