c#通过windowsapi获取外部程序中listbox的值,有的可以获取到,有的获取不到,LB_GETCOUNT都能取到正确数量

墨七轩 2018-02-23 11:39:10
论坛诸位,近日我遇到了一个问题,特在论坛想各位求教。
问题描述:通过c# windowsapi获取外部程序窗体(外部程序为自己软件,但不能修改其源码)中listbox句柄,获取到句柄之后通过sendmessage中的LB_GETCOUNT可以获取到listbox中具体条数,但有的listbox中LB_GETTEXTLEN与LB_GETTEXT均获取不到数值,有的listbox中可以获取到具体条数与数值。(句柄确认为正确句柄)
问题截图:
1.可以获取到的情况
listbox图像截图

spy++获取到句柄

程序获取到的数据的情况


2.获取不到的情况
listbox获取句柄

软件运行获取数据情况



源码如果需要在问答中发,主要使用sendmessage中的LB_GETCOUNT与LB_GETTEXT,获取句柄采用鼠标点击获取。
感激回答的诸位朋友。
...全文
527 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
linmilove 2019-03-01
我写的代码获取到的文本为乱码,请问是否可以分享一下代码?
回复
SoulRed 2018-02-25
毕竟你这属于hook,你别看listbox长得一模一样,有些listbox很可能不是原生winfrom的控件,可能是listbox的子类。。。可能更改了某些行为 以上纯属猜测。 如果有条件我还是建议你把源程序写个接口出来给第三方调用
回复
相关推荐
发帖
C#
创建于2007-09-28

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2018-02-23 11:39
社区公告

让您成为最强悍的C#开发者