wuke_615 2023-12-20 15:41 采纳率: 50%
浏览 18
已结题

VB6使用MSAA编程时accChildCount返回异常,但Inspect点击后就正常了。

我现在使用msaa(Microsoft Active Accessibility)编程,使用过程中发现某级元素的accChildCount返回是0(Location:Width=0,Heght=0),但是它的下级是有元素的。经过InSpect测试发现必须点击一下这个节点,该节点的State就会从&H844变成&H100044。并且Name也回从Null变为有内容。此时的accChildCount返回值也正常了,可以遍历下级元素。
也就是说默认状态下是遍历到问题节点就结束,用InSpect一步一步展开元素树,当在问题节点的上级节点点击时,被展开的下级问题节点显示的State还是&H844,一旦再点击问题节点后,该节点的State就变&H100044。就遍历正常了。
各位有没有知道原因的?

问题现象与这个贴子类似,但此楼主没有说明原因。
http://bbs.csdn.net/topics/340010723
msaa编程与inspect的问题
https://bbs.csdn.net/topics/390461719

总不能配置到客户端再每次点击一下Inspect吧?付费付费!

  • 写回答

13条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-12-20 15:41
    关注

    引自强大而免费的微信小程序:皆我知道

    这个问题可能是由于两个原因引起的:

    1. MSAA可能在访问问题节点之前未完全加载完毕。在某些情况下,MSAA在实际调用之前需要一些时间来加载正确的信息。通过使用延迟加载或者等待一段时间后再访问节点,可能可以解决此问题。

    2. 这个问题可能与UI自动化树的构建方式有关。Inspect工具在点击节点时,可能会触发UI自动化树的重新构建,导致节点的状态和子节点信息更新。你可以尝试在代码中手动触发UI自动化树的更新,比如通过调用相关的UI Automation API函数来强制更新节点的状态。

    总体来说,这个问题可能与MSAA的加载和UI自动化树的更新有关。你可以尝试通过延迟加载、等待一段时间或者手动触发UI自动化树的更新来解决此问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月27日
  • 创建了问题 12月20日

悬赏问题

  • ¥15 如何在animate html5文档任意位置实现文本输入功能?
  • ¥15 电机正反转电路设计中,mos管的关断问题,求原因。
  • ¥15 关于#sql#的问题:怎么找出所有同时多张有效保单的车架号
  • ¥15 KFC账号下单提示拒绝操作
  • ¥20 HC32F460串口发送仅能接到一个数据
  • ¥15 求解答一下是否可以修改一个软件运行时生成的文件内部内置的文件创建时间?
  • ¥20 WIN10蓝屏问题!
  • ¥15 Mac经常自动关机,再次打开后提示“电脑因出现问题而重新启动”
  • ¥60 使用ovito软件怎么得到金属玻璃的自由体积
  • ¥15 急!如何实现根据汇编指令推测硬件功能?