Текст окна поиска
Привет всем, я пытаюсь получить текст из внешней программы. В настоящее время я использую этот код:
Dim lngHWND As Long
Dim lngHWNDF As Long
Dim lngID As Long
Dim lngChild As Long
Dim lngRet As Long
lngHWND = FindWindow(vbNullString, "Client - Main")
Do
lngChild = FindWindowEx(lngHWND, 0&, "ThunderRT6Frame", vbNullString)
If lngChild <> 0 Then
lngID = GetWindowLong(lngChild, GWL_ID)
MsgBox("Child HWND: " & Hex(lngChild) & " ID: " & lngID)
lngRet = CloseHandle(lngChild)
End If
Loop Until lngChild = 0
lngRet = CloseHandle(lngHWNDF)
lngRet = CloseHandle(lngHWND)
Я получаю значения для lngHWND, lngHWNDF и lngChild. Однако это только значения (числа), а не сам текст.
Вот изображение программы, из которой я пытаюсь получить текст:
Как я могу получить текст из найденных предметов?
Дэвид
1 ответ
Буквально прошло более десяти лет, но я уверен, что вы можете использовать SendMessage
/WM_GETTEXT
на дескриптор (ы) дочерних окон, которые вы хотите текст. Вам нужно подготовить строковые буферы, в которые API может записать результаты, если вы пойдете по этому пути.
Там также, кажется, ярлык для использования SendMessage
/WM_GETTEXT
Я нашел здесь:
Public Declare Ansi Function GetWindowText Lib "User32.dll" Alias "GetWindowTextA" ( _
ByVal hwnd As Integer, _
ByVal lpString As StringBuilder, _
ByVal nMaxCount As Integer) As Integer
' example:
Dim s As New StringBuilder(256)
GetWindowText(hwnd, s, s.Capacity)