首页
社区
课程
招聘
如何获取其他进程list控件中的文本
发表于: 2011-7-5 12:54 5997

如何获取其他进程list控件中的文本

2011-7-5 12:54
5997
大家好,碰到这样一个问题。有一个程序已经在运行,是 delphi写的,程序中有个list控件,显示了很多数据库中的数据,想把其中的文本用自己的程序读出来。

我已经findwindow找到了控件句柄,但如何用自己的程序读这个list控件里面的文本信息?是把自己得到的句柄当作类对象来处理这个控件结构还是怎么来确定这个控件?
或者有其他方法可以读或者抓获文本?能否具体说下,谢谢

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 78
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用windows hook,按以下步骤
1.安装dll 钩子 hook进了列表程序进程
1.FindWindow获取程序窗口句柄gHwnd.
2.FindWindowEx根据gHwnd获取listview控件句柄listhwnd.
3.count=ListView_GetItemCount(listhwnd)获取数据个数
4.遍历:ListView_GetItemText(listhwnd,行数,列数,接受数据数组指针,1);
5.上面提到的函数都是系统API
注意,一定要用hook,或者线程注入,因为ListView_GetItemText只在本进程有效

你试下,有问题再说
2011-7-5 16:09
0
雪    币: 183
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢您的回复。问题是这个 LIST可能被处理过,无法用FindWindowEx获取listview控件句柄,但用SPY++可以得到。
用SPY++扑捉时候发现这个控件的父窗口句柄不知道挂接到什么位置去了
2011-7-5 18:19
0
雪    币: 78
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你用FindWindow可以获取也一样啊,很多种方法能获取句柄的,比如枚举所有
你既然用到spy++,那么就可以通过spy++获取父窗口
再按我说的步骤做也行,我都做过了这样的程序
2011-7-6 14:22
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我也一直想学习下,但不知道该怎么做
2011-12-6 08:59
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
举天问剑,你的方法不行啊,那个软件是NET写的
你说的方法我有试,没用呢,对NET程序的控件数据没有用呀
2011-12-6 21:08
0
游客
登录 | 注册 方可回帖
返回
//