当前位置:首页 > 体育 >

自适应位置控制(位置控制程序编程)

来源:原点资讯(www.yd166.com)时间:2023-11-16 19:23:05作者:YD166手机阅读>>

自适应位置控制,位置控制程序编程(1)

什么是RPA?RPA(Robotic Process Automation,机器人流程自动化)是通过特定的、可模拟人类在计算机界面上进行操作的技术,它可以按规则自动执行相应的流程任务,代替或辅助人类完成相关的计算机操作,从而节约人力成本,提高生产效率。

从RPA的定义就可以看出,对计算机界面的操控是RPA的核心之一。要实现对计算机界面的操控,就必须用到RPA界面元素定位和操控技术。


元素定位与操控技术

界面元素是指用于构建系统或应用程序的所有图形用户界面部分,例如窗口、输入框、按钮等。通过显示器、键盘、鼠标等计算机外部设备,人能够实现在指定输入框输入文本、点击指定按钮等操作,和操作系统以及业务系统进行交互。同样的,RPA要代替人完成这些操作,就需要能够定位和操控这些界面元素。

界面元素定位与操控方法有很多,主要区别在于是否使用GUI(Graphical User Interface, 图形用户接口)自动化技术。非GUI自动化技术有:绝对坐标定位、图像匹配定位、基于消息操作、模拟键鼠操作等。GUI自动化技术有:Win32、MSAA、UIA、JAB、SAP、Citrix Virtual Channel、RDP Virtual Channel、Selenium、Chrome Extension等。通常来说,GUI自动化技术能获取到的界面元素的信息更多,支持的操作也更多,但同时局限性也更大,一种GUI自动化技术往往只支持几个界面元素框架,实际使用起来也会更困难。

下面列举几种常用的自动化技术并给出优缺点分析。


01 绝对坐标定位

绝对坐标,是指屏幕中固定的坐标位置,当界面元素总是处于屏幕中固定坐标位置时,就可以使用绝对坐标来进行定位。这个方法非常简单方便,在特定场景下非常好用。但是一般要求屏幕分辨率和应用窗口大小固定,而且无法保证定位到的界面元素是否正确。


02 图像匹配定位

图像匹配,在待匹配图像中寻找与目标图像相似性高的单个或多个目标,并获取目标的坐标位置。图像匹配可以和绝对坐标定位相结合,先使用绝对坐标定位,再用图像匹配做校验;也可以先划定屏幕中的某个区域,在此区域内进行图像匹配,以达到提高准确率、加速匹配过程的目的。


图像匹配的方法非常多,模板匹配使用空间二维滑动模板进行匹配,将目标图像在待匹配图像中滑动;特征匹配提取图像的特征,再生成特征描述子,最后根据描述子的相似程度对两幅图像的特征之间进行匹配;深度学习也可用于图像匹配之中,例如,使用OCR技术可以定位到包含指定文本的图像。


03 基于消息操作

这里的消息指的是操作系统的消息。Windows 是一个消息驱动的系统,Windows的消息提供了应用程序之间、应用程序与Windows 系统之间进行通信的手段。通过对应用程序窗口发送特定的消息,可以实现对指定界面元素的点击输入等操作。

自适应位置控制,位置控制程序编程(2)

图1 Windows消息机制


04 模拟键鼠操作

模拟键鼠可分为消息模拟、API模拟、驱动模拟三种。消息模拟基于windows的消息机制,向目标窗口发送键鼠消息。API模拟就是用Windows提供的API实现模拟输入。驱动模拟就是通过驱动程序,在系统内核里面操作I/O端口,给连接键盘的集成电路发送指令,让它产生一个按下按键的信息,这样你的模拟输入对于所有程序来说就是从一个真实的设备发出的。


05 Win32 API

Win32 API是微软第一代应用程序可访问API。Win32 API出现在.NET之前,是底层的Windows API。它支持MFC、VB6、VCL、简单的WinForms等窗体。

Win32自动化技术基于HWND(窗口句柄),一般需要通过 FindWindow、 EnumWindows 来查找目标窗口的句柄,然后再调用其它 API,例如 GetWindowText、GetWindowRect等来获取窗口属性,以此来定位目标元素。定位到目标元素之后,可以通过Win32 API实现对目标元素的操控。例如使用SetWindowText来设置显示的文字,使用SetActiveWindow来激活窗口等。


优点

  • 对标准Windows控件支持良好


缺点

  • 过于底层,调用复杂。例如:Win32 API查询窗体需要逐层获取窗体句柄进行遍历查找

  • 技术落后,用途不广。例如:Win32 API对新UI框架以及自定义控件的支持很差。


06 MSAA

MSAA(Microsoft Active Accessibility)是微软第二代应用程序可访问API。MSAA旨在帮助辅助技术产品与应用程序(或操作系统)的标准和自定义用户界面元素进行交互。它支持WFC、VB6、VCL、WinForms、WPF等窗体。

MSAA 主要基于 COM 技术。提供信息的应用程序被称为 Server;获取信息的应用程序被称为Client。首先Client调用AccessibleObjectFromWindow传入Server窗口的HWND。

然后AccessibleObjectFromWindow函数向Server发送WM_GETOBJECT消息。Server创建并实现了IAccessible,之后通过LresultFromObject 把IAccessible 返回给Client。最后Client调用IAccessible定位和操作Server中的界面元素。

优点

  • 相较Win32 API更简单易用。使用者只需要和 IAccessible 进行交互,也不需要直接使用windows消息来操作目标元素。

  • 相较Win32 API支持了部分自定义控件。前提是开发人员在实现自定义控件的同时实现了 IAccessible 的接口。


缺点

  • 功能不全。MSAA技术的初衷是为了方便残疾人使用Windows 程序,对自动化来说还是不够,仅支持对界面元素的一些基本操作。


07 UIA

UIA(Microsoft Active Accessibility)是用于替代MSAA的应用程序可访问技术。和MSAA不同,UIA技术的初衷是提供UI的可访问性。它支持MFC、WinForms、WPF、Store apps、Qt等窗体。


UIA定义了全新的、针对UI自动化的接口和模式。分别是支持对界面元素进行遍历和条件化查询的TreeWalker和FindAll。定义了读写UI元素属性的UIA Property, 包括Name、 ID、Type、ClassName、Location、 Visibility等等。定义了UI元素行为的UIA Pattern, 比如Select、Expand、Resize、 Check、Value等等。还引入了UIA Event接口,可以让测试程序在某些事件发生后得到通知,比如新窗口打开事件等。

自适应位置控制,位置控制程序编程(3)

图2 UIA架构图

优点

  • 支持的UI框架更丰富。例如WPF和Silverlight中的子窗口和控件并不是传统的HWND,所以Win32 API和MSAA无能为力,而UIA可以直接支持这两种程序。

  • 兼容传统的Win32和MSAA模式。前面提到过,UIA技术的内部实现可以多样化。针对传统程序,UIA可以在内部实现中借用MSAA的接口和直接调用Win32 API。

  • 高度抽象,易于使用。例如执行点击按钮操作, UIA 统一归类于Invoke, 无论是Win32、 WPF还是Silverlight按钮,都可以通过Invoke实现点击,不用关心具体实现方式是模拟键鼠还是调用Windows API。


缺点

  • 编码过程复杂。对于一个UI窗口,里面可能有几十个子控件或者子窗口。在编写测试代码的时候, 如果对这些子元素的获取,操作不能简化, 势必导致代码冗繁,难以维护。


08 JAB

JAB(JAVA Access Bridge)是一项在Microsoft Windows动态链接库(DLL)中公开Java Accessibility API的技术,使实现Java Accessibility API的 Java应用程序对Windows系统上的辅助技术可见。

要使用JAB技术,需要在启动Java程序前配置好所需的JAB环境。Client需要事先加载WindowsAccessBridge.dll获取Server提供的接口,通过FindWindow获取窗口句柄,用IsJavaWindow来判断筛选出Java程序的窗口。拿到窗口后,可以根据窗口句柄获取虚拟机编号vmID 和根节点ac。之后就可以使用vmID和ac,通过之前Server提供的接口,来获取子节点界面元素的vmID和ac、获取界面元素的信息、以及调用界面元素支持的点击输入等方法。

JAB技术的初衷也是为了方便残疾人使用,因此对自动化技术的支持并不好。


自适应位置控制,位置控制程序编程(4)

首页 123下一页

栏目热文

位置控制的方式(位置控制的优点)

位置控制的方式(位置控制的优点)

引言:什么是位置控制,位置控制是工控领域中较为常见的一种控制方式,通常用在机械设备的位置移动控制上,如机床和机械臂等,在...

2023-11-16 19:20:11查看全文 >>

如何添加按钮实现两地控制(不用按钮能实现自动往返控制吗)

如何添加按钮实现两地控制(不用按钮能实现自动往返控制吗)

识图指导图18 电路为一例两地点动和单向启动控制线路,本电路适用于需连续或断续单向运行,并且可两地操作控制的生产机械上。...

2023-11-16 19:15:02查看全文 >>

怎么实现全闭环位置控制(全闭环控制方法和图解)

怎么实现全闭环位置控制(全闭环控制方法和图解)

近来看了一本书,叫《普通人的成事方法论》。这本书的作者,统计分析了精英人士的行动模式,从而构建出一个普遍适用的成事高手进...

2023-11-16 19:48:45查看全文 >>

位置控制应用场合(位置控制与定位控制)

位置控制应用场合(位置控制与定位控制)

在现代工业生产的核心部分,机械设备的传动系统扮演着至关重要的角色。而在这个复杂的系统中,滚珠丝杠作为关键的组成部分,其作...

2023-11-16 19:15:39查看全文 >>

位置控制编程(如何实现自动化精准位置控制)

位置控制编程(如何实现自动化精准位置控制)

西门子1200PLC最多支持4路高速脉冲输出,可以控制四个步进或伺服电机,如果每个轴都调用一次运动控制值,编程工作量就会...

2023-11-16 19:18:47查看全文 >>

我们如何正确对待中华传统文化(如何正确对待中华传统文化 坚定文化自信)

我们如何正确对待中华传统文化(如何正确对待中华传统文化 坚定文化自信)

文化是一个国家,一个民族的灵魂,是一个民族的精神面貌和独特气质,是一个民族经久不衰的精神火炬和永恒的精神图腾,也是新时代...

2023-11-16 19:56:17查看全文 >>

今天我们应该如何对待传统文化(今天的我们应如何对待传统文化)

今天我们应该如何对待传统文化(今天的我们应如何对待传统文化)

陆文荣9月1日出版的《求是》杂志刊发习近平总书记《在文化传承发展座谈会上的讲话》。在这篇重要讲话中,习近平总书记再次对“...

2023-11-16 19:49:18查看全文 >>

我们应该怎样正确对待传统文化(为什么要正确的对待传统文化)

我们应该怎样正确对待传统文化(为什么要正确的对待传统文化)

本期光明网理论学术动态导读关注传统文化、多边主义、新发展阶段、房地产业、核心技术攻关等话题,欢迎网友踊跃参与讨论。【戴木...

2023-11-16 19:52:29查看全文 >>

人们应该怎么正确对待传统文化(我们应该怎么对待和认识传统文化)

人们应该怎么正确对待传统文化(我们应该怎么对待和认识传统文化)

世界上一切事物的发展都具有二重性,文化也同样具备两面性的特点,在既有普遍性的同时又具有特殊性,古代社会和现代社会存在多方...

2023-11-16 19:09:58查看全文 >>

李信变身还能变回来吗(李信有必要变身吗)

李信变身还能变回来吗(李信有必要变身吗)

心怀荣耀方能成就王者,大家好我是指尖,坦克崛起、坦克荣耀、射手荣耀,s19赛季各路英雄热度大涨,尤其是对抗路,我们只提坦...

2023-11-16 19:45:19查看全文 >>

文档排行