如何获取某应用程序中的文本框内容

carklote_Lee 2008-04-17 12:51:20
我已经找到某应用程序中 "edit"的hwnd
如果是button 通过 getwindowtext 能获取到这个按钮的文本内容
但edit 通过 getwindowtext 就不行

需要用什么样的API 能获取到 edit 中的文本呢?
文本框中获得最后一行的就行


...全文
138 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbm6666 2008-04-17
  • 打赏
  • 举报
回复
'**************************** 代码 1
'添加 Text1

Private Sub Form_Load()
Text1.Text = "CBM666 到此一游"
Me.Caption = "隔岸观火"
End Sub


'**************************** 代码 2 用来抓上面代码1里面的Text1的内容
'添加 Command1

Option Explicit
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 Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_GETTEXT = &HD
Const WM_GETTEXTLENGTH = &HE
Dim Phwnd&, ChildHwnd&, Tmpstr$, Textlen&
Private Sub Command1_Click()
Phwnd = FindWindow(vbNullString, "隔岸观火")
If Phwnd <> 0 Then
ChildHwnd = FindWindowEx(Phwnd, 0, "ThunderTextBox", vbNullString)
If ChildHwnd > 0 Then
MsgBox GetText(ChildHwnd)
End If
End If
End Sub

Function GetText(Thwnd As Long) As String
Textlen = SendMessage(Thwnd, WM_GETTEXTLENGTH, 0, 0)
If Textlen = 0 Then GetText = "": Exit Function
Textlen = Textlen + 1
Tmpstr = Space(Textlen)
Textlen = SendMessage(Thwnd, WM_GETTEXT, Textlen, ByVal Tmpstr)
GetText = Left(Tmpstr, Textlen)
End Function

yangao 2008-04-17
  • 打赏
  • 举报
回复
看看你获取的hwnd对吗
chenhui530 2008-04-17
  • 打赏
  • 举报
回复
SendMessage 发送wm_gettext消息

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧