如何获取其他程序中的输入框的值?

解决方案 »

  1.   

    先得到editbox的句柄 
    再getwindowtext
      

  2.   

    先获得控件的句柄(可用FindWindow结合FindWindowEx实现)
    然后用sendmessage函数给它发送一条WM_GETTEXT消息
      

  3.   

    sendmessage  WM_GETTEXT 取不了啊
    能否给个例子?
      

  4.   

    不要用getwindowtext,不能用getwindowtext从另一个应用程序的编辑控件中获取文字,帮助上这么说的。
      

  5.   

    一个简单的示例,可根据需要修改
    一个按钮,一个文本框
    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 Const WM_GETTEXT = &HD
    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 LongPrivate Sub Command1_Click()
        Dim hwnd As Long
        Dim texthwnd As Long
        Dim s As String * 80 '字串s要足够大,这里随便写了80
        hwnd = FindWindow(vbNullString, "this is test")
        If hwnd <> 0 Then
            texthwnd = FindWindowEx(hwnd, 0, "ThunderTextBox", vbNullString)
            If texthwnd <> 0 Then
                
                SendMessage texthwnd, WM_GETTEXT, Len(s), ByVal s
                MsgBox s
            End If
        End If
    End SubPrivate Sub Form_Load()
        Me.Caption = "this is test"
    End Sub