首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

求教高手,怪异有关问题,为什么FindWindowEx得到了异常的句柄值

2013-07-08 
求教高手,怪异问题,为什么FindWindowEx得到了错误的句柄值?本帖最后由 wwwww112233 于 2013-03-20 00:42:2

求教高手,怪异问题,为什么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……去获取

热点排行