【问题标题】:Windows UI Automation APIWindows UI 自动化 API
【发布时间】:2012-02-29 03:18:08
【问题描述】:

我一直在努力解决这个问题,因此我们将不胜感激。我在客户端中使用 UI 自动化来监视和报告另一个应用程序中的用户选择。我让代码在 Server 2003 上完美运行。然而,在 Server 2008 上,我正在监视的控件被报告为数据网格中的项目或列表。这是非常随机的,我注意到如果我继续在控件中选择行,最终控件将被报告为数据网格。在服务器 2003 上,它始终被报告为数据网格,因此我的代码运行良好。

我正在使用 Visual Studio 2010 C# 进行开发。

更新:

我想提一下,我使用 UI Spy 工具得到了相同的结果,因此源代码与这种特定情况无关。

【问题讨论】:

  • 没有看到源代码,这将是纯粹的推测,如安全、UAC、高/低特权进程和其他东西......
  • 我使用 UI Spy 工具 (msdn.microsoft.com/en-us/library/ms727247.aspx) 得到了相同的结果,因此在这种情况下不需要源代码。
  • 那么目标的来源是相当相关的......
  • 首先,感谢您抽出宝贵时间发表评论。如果目标来源是指我正在监控的应用程序,那么它就是第三方应用程序。除了通过自动化能看到的东西外,我对它的发展了解不多。我相信包含控件的窗口是 MDI。是否需要更多信息来帮助解决此问题?
  • 恕我直言,您看到的原因很可能是由于向较新的 Windows 版本添加了多种安全措施以及目标应用程序的实现方式(它是基于 .NET 吗?是 Windows 的控件吗?内置的一个或一些第 3 方控件?)...我不知道如何在不将目标应用程序分开(在源代码级别和/或使用调试器)的情况下诊断这个...也许有人更熟练或者有你描述的类似经历可以帮助解决这个问题......

标签: c# user-interface automation ui-automation microsoft-ui-automation


【解决方案1】:

根据几个方面,UltraGrid 会重新创建它的句柄(有时甚至相当频繁)...这可能会混淆 UI 自动化对它的感知...我认为您对此无能为力在目标应用程序之外...

附加信息:

根据this,相关控件 (Infragistics UltraGrid) 不支持 Windows/MS UI 自动化。

目前唯一支持的自动化解决方案是TestAdvantage product from the same vendor

尽管他们似乎正在努力在未来几个月内增加对 Windows UI 自动化的支持...

【讨论】:

  • 澄清一下,我指的是这个回复:根据几个方面,UltraGrid 重新创建它的句柄(有时甚至相当频繁)......这可能会混淆 UI 自动化的感知方式。 . 我不认为你从目标应用程序之外做任何事情
  • @DeviantSeev 是的,这是第一段 - 我只是为了完整性/参考,我添加了所有提供的信息......
  • 谢谢,太完美了。我会尽快奖励赏金。
猜你喜欢
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
  • 1970-01-01
  • 2018-02-17
  • 2011-01-12
  • 2013-12-03
  • 2014-01-25
相关资源
最近更新 更多