MS UI Automation原来如此

MS UI Automation原来如此

最近参加了公司的一个program competition,做个小工具。其中涉及到一个盲点。 需求是:在代码中访问另一个program的进程,获取它的窗口句柄,并在它的窗口上对某一个控件进行鼠标点击操作以执行相应的命令。google来baidu去,终于有思路了:原来需要用到MS的UI automation library。MS提供了面向c/c++的API,也提供了面向managed code的API。

Extract some overview words from below MS msdn article:

Microsoft UI Automation is an accessibility framework that enables Microsoft Windows applications to provide and consume programmatic information about user interfaces (UIs). It provides programmatic access to most UI elements on the desktop. It enables assistive technology products, such as screen readers, to provide information about the UI to end users and to manipulate the UI by means other than standard input. UI Automation also allows automated test scripts to interact with the UI. 

详细背景信息参见:http://msdn.microsoft.com/zh-cn/library/ms726294%28en-us,VS.85%29.aspx

 

就我目前体会到的,主要有这么几点:

1. 通过这个库,我们可以做两件事情:

The Microsoft UI Automation for Microsoft Win32 API enables assistive technology applications and automated testing tools to interact with user interface (UI) controls.

The API is in two parts, that are used independently by UI Automation providers and by UI Automation client applications. The provider API enables developers of Win32 custom control and other control frameworks to expose those controls to UI Automation and make them visible to client applications. The client API enables applications to interact with controls.

2. About Spy++ and UI Spy

通过这两个工具,我们可以获取到任何一个窗口的详细UI信息,具体到一个控件的tab顺序都可以拿到。

3. 读了几个例子:

自动化测试工具的原理:http://www.cnblogs.com/Thomson-Blog/articles/1295729.html:

Major Tom 的 GUI 控件:http://blog.moneypa.com/post/Major-Tom-e79a84-GUI-e68ea7e4bbb6.aspx

Microsoft UI 自动化库:http://msdn.microsoft.com/zh-cn/magazine/cc163288.aspx 

 

转载于:https://www.cnblogs.com/taoxu0903/archive/2009/11/17/1604989.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110846.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • eplanwin10激活码获取_在线激活

    (eplanwin10激活码获取)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsaWN…

    2022年3月27日
  • 激活成功教程版游戏盒子下载_pixaloop激活成功教程版

    激活成功教程版游戏盒子下载_pixaloop激活成功教程版Typora收费了,个人理解想让我花小钱钱,不可能但是用习惯了,懒得换,怎么办用不收费的旧版就ok了正巧之前重装系统有下载的安装包,分享给大家了,需要的随意,安装包的时间是2021/11/22与2021/04/07两个版本的里面有一些其他软件,需要的自取https://yxmiaoyu.lanzouo.com/b01cyja5c密码:windows…

    2022年10月12日
  • sg90舵机工作原理_舵机跑舵?锲而不舍终除隐患![通俗易懂]

    sg90舵机工作原理_舵机跑舵?锲而不舍终除隐患![通俗易懂]因为专注才更专业,快快关注吧!欢迎投稿:sea@shipmg.com正文开始一、前言某司二条姐妹船采用SSP5型360º全回转电力推进器,左右两台中压永磁电机推进船舶行驶,另外两面分别由两台P14S金杯油泵驱动三台CA210型赫格隆内曲线液压油马达360º控制船舶回转方向。在机动航行时使用港口模式,推进器可以360º全回转,正常航行时使用海上模式,推进器只能在左右35º…

    2022年6月21日
  • 使用vue-cli创建项目_vuecli3项目打包并运行

    使用vue-cli创建项目_vuecli3项目打包并运行vue-cli创建项目上一篇我们安装了vue-cli,接下来我们就使用该脚手架进行创建项目1.进入一个目录,创建项目创建项目命令如下:vuecreate<ProjectName&g

    2022年7月30日
  • 挑战10个最难回答的Java面试题(附答案)

    译者:Yujiaaosegmentfault.com/a/1190000019962661推荐阅读(点击即可跳转阅读)1.SpringBoot内容聚合2.面试题内容聚合3.设计模式内容聚合4.Mybatis内容聚合5.多线程内容聚合这是我收集的10个最棘手的Java面试问题列表。这些问题主要来自Java核心部分,不涉及JavaEE相关问题。…

    2022年4月14日
  • ModelAndView 详解

    ModelAndView 详解当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherServlet。因此,经常需要在控制器中构造ModelAndView对象。ModelAndView类提供了几个重载的构造器和一些方便的方法,让你可以根据自己的喜好来构造ModelAndView对象。这些构造器和方法以类似的方式支持视图名称和视图对象。当你只有一个模型

    2022年7月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号