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 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 Const WM_GETTEXT = &HD
Private Sub Command1_Click()
Dim Handle As Long
Dim wndText As String
wndText = Space(255)
Handle = FindWindow("IEFrame", "请问如何获得一个外部程序窗口中文本框的内容? - Microsoft Internet Explorer")
Handle = FindWindowEx(Handle, 0&, "WorkerW", vbNullString)
Handle = FindWindowEx(Handle, 0&, "ReBarWindow32", vbNullString)
Handle = FindWindowEx(Handle, 0&, "ComboBoxEx32", vbNullString)
Handle = FindWindowEx(Handle, 0&, "ComboBox", vbNullString) ' 获得窗口句柄
Handle = FindWindowEx(Handle, 0&, "Edit", vbNullString)
SendMessage Handle, WM_GETTEXT, 256, ByVal wndText
wndText = Left(wndText, InStr(wndText, Chr(0)))
Debug.Print wndText
End Sub