1

我有一个应用程序需要自省正在运行的第三方 .NET 应用程序——我没有它的来源。我需要能够阅读屏幕上的表单、控件及其在屏幕上的相对位置。

有哪些库或技术(Microsoft 或其他)可用?

我需要的:

  • 从我将编写的应用程序中以编程方式执行此操作(即我对 Visual Studio 插件不感兴趣)
  • 支持所有(或尽可能多的)CLR 应用程序
  • 能够找到所有打开的屏幕/表格
  • 对于给定的屏幕/表单,发现所有控件
  • 对于控件,请读取以下属性:

    • 它是屏幕上的值(即输入字段中的文本),
    • 字体大小、颜色和样式,
    • 表格上的位置
    • 任何标签
    • 控件的父面板/组
  • 检测屏幕焦点在哪里

我不需要的东西(但除了作为额外价值之外):

  • 发现其他对象或恢复运行时对象图
  • 反编译或以其他方式获取第三方源
  • 发现应用程序的类层次结构
  • 深入了解应用程序运行时状态的其他方面
  • 内省本机 C++ 应用程序
  • 从另一台计算机/VM 内省应用程序。
4

1 回答 1

1

听起来您正在尝试使其他程序自动化。好消息是微软已经为UI 自动化制作了一个完整的库:

Microsoft UI 自动化是 Microsoft Windows 的新辅助功能框架。它通过提供对有关用户界面 (UI) 信息的编程访问来满足辅助技术产品和自动化测试框架的需求。此外,UI 自动化使控制和应用程序开发人员能够使他们的产品易于访问。

于 2013-01-22T07:30:26.640 回答