急!!!关于用spy++获取窗口控件的文本值的问题,太闹心了,有经验的帮我看一下

爱偷懒的程序猿 2013-07-31 02:43:27
最近公司一个旧的软件出了问题,软件是厂家卖他们产品的时候自带的。

由于软件比较久了,厂家也没人去维护了,所以只能我们自己做一个外挂程序来修补它。

软件界面是这样的



我现在就是想要获取“总打标次数:200”这个控件里面的值

我是用C语言做的,先找到这个窗口的控件,用的是FindWindow,然后层层遍历子窗口,用FindWindowEx,最后获取控件的值,用的是SendMessage来取值的。

重点是我程序写好了,基本上所有控件的值都是可以获取到的,偏偏就我想要的那个控件的值是取不到的,它也就是一个很普通的控件啊,为什么就是取不到呢,并且我用spy++和spy4win这些软件也都找不到那个文本控件

搞不懂为什么!!!???急死我了,搞了好几天了,请求有经验的大神给个指点啊!


对了,Visual C++的“About”界面里面控件的值也是获取不到的
...全文
1211 40 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
han43002 2016-04-23
  • 打赏
  • 举报
回复
碰到了和楼主相同的问题,如果楼主已经解决求分享
anyboy010 2013-08-01
  • 打赏
  • 举报
回复
兄弟,你把你家程序(最小化,可运行即可,不需要额外数据)发过来,让哥给你破解。 hanker888@126.com 或者QQ:1463175483
向立天 2013-08-01
  • 打赏
  • 举报
回复
奇怪 那我们也无能为力
  • 打赏
  • 举报
回复
引用 33 楼 xianglitian 的回复:
spy4win没用过 我用的是VS自带的spy++ 你用spy++试试呢
试过了,抓不到的。
向立天 2013-08-01
  • 打赏
  • 举报
回复
spy4win没用过 我用的是VS自带的spy++ 你用spy++试试呢
  • 打赏
  • 举报
回复
引用 30 楼 xianglitian 的回复:
好久不用6.0了
你说6.0里的文字都获取不到?
6.0应该还是用static做的吧
我用2008看了一下
是可以拿到的
这么说来你这个界面看上去应该也就是静态控件啊

  • 打赏
  • 举报
回复
引用 30 楼 xianglitian 的回复:
好久不用6.0了 你说6.0里的文字都获取不到? 6.0应该还是用static做的吧 我用2008看了一下 是可以拿到的 这么说来你这个界面看上去应该也就是静态控件啊
6.0的真的拿不到,我用的是spy4win
向立天 2013-08-01
  • 打赏
  • 举报
回复
好久不用6.0了 你说6.0里的文字都获取不到? 6.0应该还是用static做的吧 我用2008看了一下 是可以拿到的 这么说来你这个界面看上去应该也就是静态控件啊
  • 打赏
  • 举报
回复
引用 22 楼 VisualEleven 的回复:
不知道直接ReadProcessMemory、WriteProcessMemory行不行?
用ReadProcessMemory不也是要得到句柄吗?我现在是得不到它的句柄的。 我看了一下ReadProcessMemory的用法 BOOL ReadProcessMemory(HANDLE hProcess,LPCVOID lpBaseAddress,LPVOID lpBuffer,DWORD nSize,LPDWORD lpNumberOfBytesRead); 是不是用ReadProcessMemory不需要得到句柄,只要得到数据的地址LPCVOID就行了? 那么数据的地址又该怎么得到呢
  • 打赏
  • 举报
回复
引用 24 楼 m617105 的回复:
如果要是仅仅需要那个“200”的数字的话,可以考虑下先将这个区域截个图(仅仅是这个控件找不到HWND,其他的都可以找到,截图应该很方便),然后对截取的图进行类似验证码的分析,验证码分析这么清楚而且没有干扰的图片应该很轻松
最开始的想法就是截图分析,可是这样效率应该不高的吧,并且应该分析的成功率也是个问题。当然我还没进行实践,希望朋友给出更好的想法
hucailai 2013-08-01
  • 打赏
  • 举报
回复
用这个工具:cheatengine
hucailai 2013-08-01
  • 打赏
  • 举报
回复
楼主,你可以尝试下,抓内存数据,这个应该更简单点。
csdn_风中雪狼 2013-08-01
  • 打赏
  • 举报
回复
关注。。。 有难度的, 用 spy++,找不到,难办
尘小陌 2013-07-31
  • 打赏
  • 举报
回复
呃,是要读这个数据啊,那搞个OCR库,直接载图,放到OCR里另进行识别,这是标准字库中的字,应该很好识别的
尘小陌 2013-07-31
  • 打赏
  • 举报
回复
直接建一个无标题栏的窗口,把那个位置盖住,再要把显示的东西显示在这个小窗口上
浩南_哥 2013-07-31
  • 打赏
  • 举报
回复
如果要是仅仅需要那个“200”的数字的话,可以考虑下先将这个区域截个图(仅仅是这个控件找不到HWND,其他的都可以找到,截图应该很方便),然后对截取的图进行类似验证码的分析,验证码分析这么清楚而且没有干扰的图片应该很轻松
看不见的裂痕 2013-07-31
  • 打赏
  • 举报
回复
来关注下有没有好方法
Eleven 2013-07-31
  • 打赏
  • 举报
回复
不知道直接ReadProcessMemory、WriteProcessMemory行不行?
zhousitiaoda 2013-07-31
  • 打赏
  • 举报
回复
理论上可以。
  • 打赏
  • 举报
回复
引用 19 楼 davidyu720 的回复:
[quote=引用 14 楼 boboai612 的回复:] [quote=引用 12 楼 davidyu720 的回复:] 看起来 这个软件是Delphi开发的,“总打标次数:xxx” 是类似 STATIC的 TLabel控件。 我也用spy看过delphi的窗口,是抓不到 TLabel 控件的。Delphi用TextOut直接写TLabel控件。
VC那个开发软件不至于也是Delphi做的吧,也获取不到的,,,[/quote] 这很正常啊,Delphi可以TextOut,VC也可以TextOut啊。[/quote] 哦哦, 好吧 , 那这个能用hook解决吗?
加载更多回复(19)

15,980

社区成员

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

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