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

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

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


...全文
128 3 打赏 收藏 举报
写回复
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消息
发帖
API

1482

社区成员

VB API
社区管理员
  • API
加入社区
帖子事件
创建了帖子
2008-04-17 12:51
社区公告
暂无公告