请问如何获得一个外部程序窗口中文本框的内容?

发财蛇 2003-10-17 10:16:18
例如:取得浏览器中地址栏的内容
...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodname008 2003-10-28
  • 打赏
  • 举报
回复
http://www.800down.com/view.asp?id=1412
到这里下载一个“窗口间谍”,用鼠标拖动那个放大镜,拖到哪个窗口就会获得哪个窗口的句柄、类名等,有点像Spy++,但是中文的。

对于密码框,主要取决于密码框所用的类。
用VB的标准Text是可以的,不过别的程序不知道用的是什么类做的,也就是说有可能能获得密码框中的密码,也有可能无法获得。
发财蛇 2003-10-27
  • 打赏
  • 举报
回复
goodname008(卢培培,LPP Software):
WorkerW,ReBarWindow32,ComboBox,Edit这些要查找子窗口的类名吗?我该如何知道这些类名?如果换成一个密码框该怎样?
能不能帮我解释一下,或提供相关资料?谢谢~
goodname008 2003-10-18
  • 打赏
  • 举报
回复
' 找到程序的窗口句柄后,发个消息
' 这个贴子的IE窗口别关,把下面的代码复制到窗体代码中点一下Command1就可以了。

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
发财蛇 2003-10-18
  • 打赏
  • 举报
回复
d~
发财蛇 2003-10-17
  • 打赏
  • 举报
回复
ding~

1,486

社区成员

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

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