读书人

求教高手怪异有关问题为什么FindW

发布时间: 2013-07-08 14:13:00 作者: rapoo

求教高手,怪异问题,为什么FindWindowEx得到了错误的句柄值?
本帖最后由 wwwww112233 于 2013-03-20 00:42:22 编辑 小弟以前从没搞过vb,但最近不得不用vb
求教了!

 NHwnd = FindWindow("Afx:00400000:b:00010005", vbNullString)
'这句得到的句柄值和句柄查看精灵一样

ChildHwnd2 = FindWindowEx(NHwnd, 0, "#7832770", vbNullString)
'这句得到的句柄值和句柄查看精灵的不一样,所以下一句执行后ChildHwnd =0

ChildHwnd = FindWindowEx(ChildHwnd2, 0, "ComboBox", vbNullString)
'由于前面的ChildHwnd2 值是错误的(虽然不是0),所以这句执行后ChildHwnd = 0

ChildHwnd = FindWindowEx(1251820, 0, "ComboBox", vbNullString)

'这里的1251820是用句柄查看精灵查到的,他查到的类名是 #7832770, 句柄值是1251820 用这个句柄值执行,ChildHwnd 可以正常取得值,但是这个值仍然和句柄精灵查到的不一样!!!

[解决办法]
很有可能是这类名?#7832770有重复,所以FindWindowEx到的句柄不一样。你看下有没有办法确认你要查找对象的唯一性,然后再查找一次试下吧。
[解决办法]
应该是类名有重复的,你可以用EnumChildWindows枚举一下子窗口就知道了,或者用其他软件查看一下。也可以用GetWindow和GW_HWNDNEXT、GW_CHILD……去获取

读书人网 >VB

热点推荐