IAccessible:get_accChildCount的问题。

mcaok 2010-02-03 03:03:41
用AccessibleObjectFromWindowh(Wnd, OBJID_CLIENT , IID_IAccessible,(void**)&paccMainWindow)得到窗口的 IAccessible 接口指针了,这时调用get_accChildCount(&num)取得父亲拥有的可访问的children 却总是返回0不能遍历children 。但是把inspect32打开后,再运行程序返回值就正确了,children 也能访问了。请问这是什么原因?怎么在不运行inspect32的情况下得到children的数目和对children 进行遍历呢?
...全文
301 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
destinyC 2012-07-05
  • 打赏
  • 举报
回复
我特么也遇到了 纠结死了。
ouguosong 2011-01-12
  • 打赏
  • 举报
回复
我也遇到这问题了
lonely_code 2010-03-31
  • 打赏
  • 举报
回复
自己也遇到这个问题了,顶一下这这个贴,期待专家解决……
mcaok 2010-02-22
  • 打赏
  • 举报
回复
实在是没办法了,结帖了。
mcaok 2010-02-21
  • 打赏
  • 举报
回复
引用 7 楼 wangk 的回复:
你参考下这篇文章看看有没有帮助

a non-MFC class to retrieve accessibility (MSAA) info

运行了一下他的代码,发现也是不运行inspect32的情况下get_accChild返回0,运行inspect32后返回值就正常了。
wangk 2010-02-20
  • 打赏
  • 举报
回复
你参考下这篇文章看看有没有帮助

a non-MFC class to retrieve accessibility (MSAA) info
mcaok 2010-02-20
  • 打赏
  • 举报
回复
引用 5 楼 gamezealot 的回复:
试试这个吧,
AccessibleObjectFromWindowh(Wnd, OBJID_NATIVEOM, IID_IAccessible,(void**)&paccMainWindow)
记得inspect32使用的应该是OBJID_NATIVEOM。

所有的参数都试过了。都不行。运行inspect32就好用。关了就不行。
mcaok 2010-02-09
  • 打赏
  • 举报
回复
引用 3 楼 stormkey 的回复:
IA * 已经有了你可以用HRESULT get_accChild(
  VARIANT varChildID,
  IDispatch** ppdispChild
);
这个函数进行递归遍历啊

没用的,get_accChild返回的是0,没法递归呀。IAccessible已经拿到,get_accChild返回的是0。只有运行inspect32,返回值不是0能递归。但也不能发布程序让人家先运行inspect32呀。
gamezealot 2010-02-09
  • 打赏
  • 举报
回复
试试这个吧,
AccessibleObjectFromWindowh(Wnd, OBJID_NATIVEOM, IID_IAccessible,(void**)&paccMainWindow)
记得inspect32使用的应该是OBJID_NATIVEOM。
Night 2010-02-08
  • 打赏
  • 举报
回复
IA * 已经有了你可以用HRESULT get_accChild(
VARIANT varChildID,
IDispatch** ppdispChild
);
这个函数进行递归遍历啊
mcaok 2010-02-04
  • 打赏
  • 举报
回复
再顶一下。谁用过呀。帮帮忙。
雪影 2010-02-03
  • 打赏
  • 举报
回复
帮顶,不熟悉inspect32

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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