如何在窗口中捕获数据

2024-01-06

我的计算机上安装了桌面应用程序。当我启动程序时,会打开某种窗口。让我们说,像这样(只是例子):

因此,我想用 C# 编写一个应用程序来查找此窗口并从中捕获一些数据。

我应该看什么工具?我想走一条阻力最小的路。

我需要捕获图像、文本框中的文本,还需要通过文本查找控件并单击它们。


我建议你使用很酷但鲜为人知的用户界面自动化API http://en.wikipedia.org/wiki/Microsoft_UI_Automation为了这项工作。

为此,首先要测试的是启动相关的UISpy http://msdn.microsoft.com/fr-fr/library/ms727247.aspx工具。它将在屏幕上显示所有可访问窗口的树。它还能够运行一些操作,例如按菜单、选择项目等。这使用了所谓的UI 自动化控制模式 http://msdn.microsoft.com/en-us/library/ms752362.aspx,它提供了一种独立于控件类型或控件外观来分类和公开控件功能的方法。

因此,如果您可以使用 UI Spy 自动化该应用程序,那么您也可以使用 .NET 代码执行完全相同的操作(UISpy 本身只是使用底层 API)。

这是一篇关于 UI 自动化编程的有趣教程文章:Microsoft UI 自动化库 http://msdn.microsoft.com/en-us/magazine/cc163288.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在窗口中捕获数据 的相关文章

随机推荐

  • Symfony 4 自定义事件调度程序不工作

    我按照 Symfony 4 3 文档创建了一个自定义事件 分派它并监听它 跟踪我的控制器的执行情况 看起来事件调度程序没有找到任何订阅者 并且我无法弄清楚我做错了什么 我的事件类非常基础 namespace App Event use Sy
  • NodeJS解码URI组件无法正常工作

    当我尝试使用decodeURLCompnent在nodeJS中解码下面的字符串时 var decoded decodeURI Ulysses 20Guimar C3 A3es 20 20lado 20par console log deco
  • DataGridView 绑定问题:“索引 -1 没有值。”

    我有一个绑定到绑定源的 datagridview 和表单上的几个按钮 一个按钮将项目添加到绑定源 另一个按钮删除当前选定的项目 还有一个事件处理程序 用于侦听 CurrentChanged 事件并更新 删除 按钮的 启用 状态 一切都很顺利
  • AWSElasticBeanstalkFullAccess(提供完全访问...)等效项?

    我正在学习有关 AWS Beanstalk 的课程 该课程可能已经过时 在 IAM 管理控制台中添加了一个用户 并且直接附加的现有策略之一是AWSElasticBeanstalkFullAccess 我自己在过滤策略时找不到它 这是改名了吗
  • 使用协议“YourProtocol”作为类型必须写为“any YourProtocol”错误

    我在实施协议时遇到错误 我已在名为 的文件中声明了如下协议 TransactionListViewViewModelItem swift 以下是我在此文件中的内容 protocol TransactionListViewViewModelI
  • 如何向 PHP/SQL 搜索脚本添加拼写建议

    使用 php sql 在我的网站上创建搜索功能 非常简单 只需使用 LIKE 子句在数据库上使用 SELECT ALL 查询并在页面上回显结果即可 我的问题是 如果用户输入错误的搜索查询 如何添加拼写建议 除非搜索词与数据库内容完全匹配 否
  • 如何在 MAT Eclipse 中使用 OQL 进行嵌入式查询

    我可以使用如下查询获取所有 Thread 对象 SELECT OBJECTS dominators s FROM java lang Thread s 那么如果我想对返回的结果对象进行进一步的分析 我认为OQL应该如下所示 SELECT f
  • Xamarin.Forms ListView 大小到内容

    我有一个相当大的表单 主要适用于平板电脑 它有一个 GridView 嵌套两个 stacklayouts 和 listview 我很少有一个 ListView 包含一些单行项目 并且我需要它来调整内容的大小 这是我的源代码
  • 单击电子邮件中的 Outlook safelink 保护链接似乎会执行代码两次

    这与编码本身并没有真正的关系 我的项目是在 Laravel 7 1 中 但更多的是在 Outlook 的安全测量中 基本上我有一个功能 可以发送一封包含按钮的电子邮件 它是一个带有令牌的链接 以及我的 Laravel 项目中用于执行某些操作
  • Discord.py SSLCertVerificationError

    我一直在开发一个机器人 昨晚它根据需要运行得很好 但今天早上当我在终端中打开机器人时 出现以下错误 Traceback most recent call last File d Documents Bots DS BOT bot py li
  • 我可以从 Windows 窗体应用程序运行编码 UI 测试吗?

    我可以从 Windows 窗体应用程序运行编码 UI 测试吗 正在寻找样本 Thanks 当然可以 您可以使用 mstest exe 命令行应用程序来运行编码的 UI 测试 您只需要编写简单的算法 确保在启动 mstest 时传递正确的参数
  • Symfony2 反向代理 - 基于 cookie 或其他设置分离相同 URL 的缓存

    我使用默认的 Symfony2 反向代理 并且需要根据 cookie 设置单独缓存同一 URL 该网站通过缩小图像和删除 JavaScript 来提供 基本 网站视图 由于内容相同 我使用了相同的 URL 但缓存当然是一个问题 我需要能够单
  • ASP Classic SQL Server 以 XML 格式从数据库返回结果

    我试图从 ASP 中的查询返回结果 当我使用 Response write Recordset 0 之类的东西时它可以工作 但它不能以 xml 格式工作 这是我的代码 Dim conn Dim Recordset Dim xmlDoc Se
  • 带有固定种子的 scipy.sparse.linalg.eigsh

    我正在尝试使用scipy sparse linalg eigsh https docs scipy org doc scipy reference generated scipy sparse linalg eigsh html具有固定种子
  • 如何使用远程页面的构造函数在 Greasemonkey 用户脚本中创建对象?

    我的用户脚本将运行的页面有一个命名空间 该命名空间定义了一个构造函数 我想使用相同的构造函数创建一个对象 并在我的用户脚本中使用该对象的方法 到目前为止我还没有成功 这就是我正在尝试做的事情 该页面具有以下本机 JavaScript 块 v
  • LinkedIn 岗位检查员给出 500 次失败

    我经营一个博客网站 我正在尝试在 LinkedIn 上分享博客 当我在 LinkedIn 帖子检查器上检查帖子时 它给出 500 错误 我不确定可能出了什么问题 因为我已经包含了元标记 并且我能够在 Facebook 上发布相同的 URL
  • jQuery SlideToggle Google 地图问题

    我读过其他类似的线程 但没有任何问题 响应 这有助于使其足够简单以了解我需要做什么 我使用的是 jQuery 版本 1 7 这可能解释了为什么其他问题中发布的一些代码不相似 Google 地图加载在 SlideToggle 的 div 中
  • 这两个控制器定义有什么区别? [复制]

    这个问题在这里已经有答案了 当我运行代码时 选项A失败但不确定原因是什么 angular module app controller controllerA function scope http code angular module a
  • 使用 fscanf() 使用 feof()

    这是我的代码 include
  • 如何在窗口中捕获数据

    我的计算机上安装了桌面应用程序 当我启动程序时 会打开某种窗口 让我们说 像这样 只是例子 因此 我想用 C 编写一个应用程序来查找此窗口并从中捕获一些数据 我应该看什么工具 我想走一条阻力最小的路 我需要捕获图像 文本框中的文本 还需要通