Vb.net 芬德温文本

Vb.net 芬德温文本,vb.net,findwindow,Vb.net,Findwindow,嘿,我想从外部程序中获取一些文本。目前我正在使用此代码: 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", vb

嘿,我想从外部程序中获取一些文本。目前我正在使用此代码:

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)
Dim lngHWND尽可能长
暗淡的lngHWNDF,如长
暗淡的长
迟钝的孩子一样长
模糊的长度
lngHWND=FindWindow(vbNullString,“客户端-主”)
做
lngChild=FindWindowEx(lngHWND,0&,“ThunderRT6Frame”,vbNullString)
如果lngChild为0,则
lngID=GetWindowLong(lngChild,GWL_ID)
MsgBox(“子HWND:&Hex(lngChild)和“ID:&lngID”)
lngRet=闭合手柄(lngChild)
如果结束
循环直到lngChild=0
lngRet=闭合手柄(lngHWNDF)
lngRet=闭合手柄(lngHWND)
我得到了lngHWND、lngHWNDF和lngChild的值。但是,它们只是值(数字),而不是文本本身

以下是我试图从中获取文本的程序的图像:

我如何从它找到的那些项目中获取文本


David

实际上已经超过十年了,但是我非常确定您可以使用
sendmages
/
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)