CN111880897A - 一种Windows窗体应用程序行为模拟机器人及其工作方法 - Google Patents
一种Windows窗体应用程序行为模拟机器人及其工作方法 Download PDFInfo
- Publication number
- CN111880897A CN111880897A CN202010722934.1A CN202010722934A CN111880897A CN 111880897 A CN111880897 A CN 111880897A CN 202010722934 A CN202010722934 A CN 202010722934A CN 111880897 A CN111880897 A CN 111880897A
- Authority
- CN
- China
- Prior art keywords
- simulation
- behavior
- configuration file
- module
- task configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 197
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000006399 behavior Effects 0.000 claims abstract description 138
- 238000010276 construction Methods 0.000 claims abstract description 13
- 230000009471 action Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 5
- 238000009434 installation Methods 0.000 claims description 3
- 238000010845 search algorithm Methods 0.000 claims description 3
- 238000011160 research Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007123 defense Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/413—Classification of content, e.g. text, photographs or tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/28—Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet
- G06V30/287—Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet of Kanji, Hiragana or Katakana characters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Manipulator (AREA)
Abstract
本发明涉及一种Windows窗体应用程序行为模拟机器人及其工作方法,包括模拟任务下发模块、任务配置文件库、模拟任务解析模块、自主模拟模块、行为库构建模块及行为数据库;模拟任务下发模块将下发的任务配置文件存储在任务配置文件库中;模拟任务解析模块从任务配置文件库中获取任务配置文件,对任务配置文件进行解析操作,将解析得到的模拟参数传给自主模拟模块;自主模拟模块接收到模拟参数之后,设置自身的模拟参数,选择模拟方法进行自主的行为模拟;行为库构建模块将模拟操作行为存储到行为数据库中。本发明可以对所有的Windows窗体应用程序进行自主行为模拟,自主构建行为库。
Description
技术领域
本发明涉及一种Windows窗体应用程序行为模拟机器人及其工作方法,属于机器人技术领域。
背景技术
互联网用户行为的研究是网络空间安全、网络靶场建设、网络反间谍反诈骗研究以及软件产品开发中的重要部分,同时对于互联网用户行为研究和模拟在一定程度上推动了国家信息安全建设和军队网络攻防武器的研究。互联网用户行为目前主要包括互联网用户的粗粒度群体行为以及个体用户细粒度行为。个体用户的细粒度行为主要包括互联网网页访问、鼠标键盘操作、收发邮件、文件上传下载等。大部分互联网用户的行为主要是通过浏览器以及相关的应用软件产生的,并且这些互联网用户所使用的软件很大一部分都是基于Windows操作系统,所以对Windows窗体6应用程序的研究对于研究互联个体用户的行为是十分重要的。
目前,大部分的Windows窗体应用程序开发使用MFC(微软基础类库),是一种微软公司提供的类库,其中是使用C++对Windows API进行封装,并且其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。MFC可以使用面向对象的方法来调用Windows API,使得开发应用程序更加敏捷和高效,同时在开发过程中提供文档架构视图结构和活动文档的应用程序架构。但是,MFC的一些类的封装十分的复杂,不利于开发人员的调试。另外,MFC的很多类依赖于应用程序向导生成的代码,使得在使用VisualC++中其他类型的应用程序向导生成的工程中添加MFC支持的难度大大增加。
目前,我国对于个体用户细粒度行为的研究和模拟还是在初级阶段,相关的研究方法和技术手段比较少,常用的方法是针对不同应用场景,对个体用户的行为事先进行录制,在录制好用户行为之后,进行行为回放操作来达到模拟用户行为的目的。这种方法在不同的场景下随着应用软件的不同,每次都要进行不同软件行为的录制,时间和经济成本较高,操作繁琐,具有很大的局限性。还有使用脚本实现特定行为的模拟的方法,该方法由于每种软件的每种动作都需要单独进行编码,工作量巨大且扩展性低,鲁棒性差,所需工作量大。还有通过对用户行为习惯建模来学习用户的行为规律,以此生成用户的行为操作序列,但是,并没有涉及此序列生成之后如何转化为用户操作软件的行为,驱动软件进行操作,因此不能满足实际场景的需求。
发明内容
针对现有技术的不足,本发明提出了一种Windows窗体应用程序行为模拟机器人。
本发明还提出了上述Windows窗体应用程序行为模拟机器人的工作方法。
本发明Windows窗体应用程序行为模拟机器人通过对已有的软件操作知识库进行知识检索,检索到操作知识后自主进行用户的行为模拟,最后建立行为库,从而达到自主模拟软件的目的。可以有效的对不同的Windows窗体应用程序进行有效的用户行为模拟,该技术大大推动相关研究的发展。
术语解释:
1、自主学习的知识库,是软件自主学习机器人在进行软件动作学习之后,将学习到的软件行为,即软件行为序列,存储到数据库中,这里的知识库是指存储了软件操作行为序列的数据库。
2、基于OCR图像识别方法,是一种为了解决在进行软件行为模拟时,处理弹出窗口中按钮识别和定位问题所设计的一种基于OCR图像识别技术的方法。该方法是行为模拟机器人进行行为模拟的方法之一。
3、系统API,在行为模拟机器人调用Windows窗口应用程序的句柄对软件用户行为进行模拟中,这里的系统API是指Windows系统内部函数中提供给程序开发者的程序接口函数(API),接口函数例如有EnumChildWindows()、FindWindowA(LPCSTR lpClassName,LPCSTR lpWindowName)、GetDesktopWindow()等等。在行为模拟机器人使用OCR图像识别方法时,这里的系统API是指使用封装好的GUI自动化工具pywinquto调用操作系统内部接口函数(API),该工具开源,其目的是基于该工具可以用程序代码自动控制鼠标操作。
本发明的技术方案为:
一种Windows窗体应用程序行为模拟机器人,包括模拟任务下发模块、任务配置文件库、模拟任务解析模块、自主模拟模块、行为库构建模块及行为数据库;
所述模拟任务下发模块用于:将下发的任务配置文件存储在所述任务配置文件库中;模拟机器人会自动接收该任务配置文件。该模块是模拟机器人的输入模块。所述模拟任务解析模块用于:从所述任务配置文件库中获取任务配置文件,对任务配置文件进行解析操作,将解析得到的模拟参数传给所述自主模拟模块;所述自主模拟模块用于:接收到模拟参数之后,设置自身的模拟参数,选择模拟方法进行自主的行为模拟;所述行为库构建模块用于:将模拟操作行为存储到所述行为数据库中。
模拟任务下发模块是从任务配置文件库中读取到实现下发存储的任务配置文件,是由数据库提取数据和向下一功能模块传输数据组成。模拟任务解析模块中,由于从模拟任务下发模块接收到的数据是多种格式,所以需要对文件进行解析,将其转换成机器人代理能够处理的信息,其组成是对任务配置文件进行接收然后进行信息的转换。自主模拟模块通过从模拟任务解析模块读取到解析后的信息,设置自身的参数,启动调用计算机系统和目标软件的接口,对目标软件进行行为模拟。行为库构建模块主要是代理机器人进行行为模拟之后,将成功模拟的行为进行数据库存储,组成行为数据库。
上述Windows窗体应用程序行为模拟机器人的工作方法,包括步骤如下:
(1)所述模拟任务下发模块将下发的任务配置文件保存在计算机本地,然后通过计算机系统内部的通信监听,将任务配置文件存储在所述任务配置文件库中;
(2)所述模拟任务解析模块从所述任务配置文件库中获取任务配置文件,对任务配置文件进行解析操作,将解析得到的模拟参数传给所述自主模拟模块,模拟参数包括需要进行模拟的目标软件名称、目标软件中的按钮集合、目标软件的安装路径、行为模拟的目标动作或者状态、选用的模拟方法;
(3)所述自主模拟模块接收到模拟参数之后,设置自身的模拟参数,选择模拟方法进行自主的行为模拟;
(4)所述行为库构建模块将模拟操作行为存储到所述行为数据库中,将模拟操作行为是指机器人按照任务配置文件中执行的模拟软件行为序列。
根据本发明优选的,步骤(2)中,所述模拟任务解析模块通过网络协议或者计算机内部通信监听,此处内部的监听是在计算机系统层面,对任务配置文件进行不断的读取,并比较文件是否发生修改和变化,来达到监听文件的目的。从所述任务配置文件库中获取任务配置文件。
根据本发明优选的,所述任务配置文件的文本格式类型可以是Windows主流的文本格式类型,包括.csv、.txt、.json。
根据本发明优选的,步骤(2)中,由于从任务下发模块接收到的数据是多种格式,所以需要对文件进行解析,对任务配置文件进行解析操作,是指:对不同文件格式的任务配置文件按照文件规则进行编码以及格式转换,将其转换成模拟机器人能够处理的信息即模拟参数。
根据本发明优选的,步骤(3)中,所述自主模拟模块接收到模拟参数之后,设置自身的模拟参数,调用Windows窗口应用程序的句柄对软件用户行为进行模拟,包括步骤如下:
首先,所述自主模拟模块接收到通过步骤(2)解析得到的任务配置文件中的行为模拟的目标动作或者状态;
然后,在程序设计中,句柄(handle)是Windows操作系统用来标识被应用程序所创建或使用的对象的整数。其本质相当于带有引用计数的智能指针。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,可以使用句柄。所述自主模拟模块调用Windows窗口应用程序的句柄对软件用户行为进行模拟,包括步骤如下:
A、模拟机器人执行任务配置文件命令,启动目标软件;
B、调用系统API,获取系统API随机给当前窗体软件分配的窗体标识符号PID;
C、调用系统API,获取到软件父窗口的PID;
D、定位到父窗口位置后,循环遍历父窗口中的句柄元素,直到找到需要操作的目标元素;
E、发送根据解析后的任务配置文件的模拟参数;
F、执行元素动作。
根据本发明优选的,步骤(3)中,所述自主模拟模块接收到模拟参数之后,设置自身的模拟参数,选用图像识别模拟方法,通过图形识别对软件多个弹出窗口的处理,以及弹出窗口的按钮进行定位,包括步骤如下:
首先,使用基于OCR图像识别方法对弹出窗口和弹出窗口的按钮进行识别,识别后将软件的界面图像转换成具有二维位置坐标信息的图片像素;图片像素信息是指截图中整个截图所有像素点的信息,这些信息中包括像素点的位置信息,即二维位置坐标信息,二维位置坐标信息是一个二维坐标,例如(x,y)),色彩RGB信息,灰度信息等等。
然后,所述自主模拟模块驱动鼠标进行行为的生成,包括步骤如下:
a、模拟机器人执行任务配置文件命令,启动目标软件;
b、对启动的目标软件进行窗口截图操作;
c、对截图进行OCR识别操作,获取截图转换的像素二维位置信息;
d、使用搜索算法,检索出需要操作区域的像素位置范围;实现过程为:首先OCR引擎识别后得到的截图信息文件中识别的文字和其像素位置信息是有对应关系的,保存在文件中,并且这种对应关系是唯一的,对操作区域的像素位置范围的检索,是一种定位区域边界的像素位置的过程,因为截图中任意的像素区域都可以使用四个不重复的像素点的位置来标识,只要得到这四个点的位置信息就可以定位该区域。所以,文件中的搜索可以看成一个匹配过程,这里使用Sunday匹配算法进行匹配。
e、调用系统API,对检索出的区域进行点击操作;
f、执行动作。
进一步优选的,步骤c中,是指:使用惠普实验室开源OCR引擎Tesseract,行为模拟机器人在获取到截图之后,使用OCR引擎Tesseract对图片进行识别,识别之后产生该截图的信息文件,该信息文件中包括像素二维位置信息,像素二维位置信息包括像素及截图中的文字。
本发明的有益效果为:
1、本发明可以对所有的Windows窗体应用程序进行自主行为模拟,自主构建行为库;
2、本发明为军用攻防武器软件提供测试和实验方法;也为大中小企业和科研单位提供软件产品的自动化压力测试;为网络靶场中的用户行为模拟提供贴近真实的软件操作行为;在一定程度上为互联网群体和个体用户的行为提供研究和实验基础,本发明能在其任何时间、任何地点提供Windows窗体应用程序行为模拟机器人,应用前景十分广泛。
附图说明
图1为本发明Windows窗体应用程序行为模拟机器人的结构框图;
图2为本发明Windows窗体应用程序行为模拟机器人的工作方法流程框图;
图3为本发明Windows窗体应用程序行为模拟机器人的工作方法流程示意图;
图4为调用Windows窗口应用程序的句柄对软件用户行为进行模拟的流程示意图;
图5为通过图形识别对软件多个弹出窗口的处理及对弹出窗口的按钮进行定位的流程示意图;
图6为本发明对记事本进行“格式-字体-确定”行为模拟的截图;
图7(a)对图6中的截图进行OCR识别操作获取的转换的有二位像素位置信息部分示意图一;
图7(b)对图6中的截图进行OCR识别操作获取的转换的有二位像素位置信息部分示意图二;
图7(c)对图6中的截图进行OCR识别操作获取的转换的有二位像素位置信息部分示意图三。
具体实施方式
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
实施例1
一种Windows窗体应用程序行为模拟机器人,如图1所示,包括模拟任务下发模块、任务配置文件库、模拟任务解析模块、自主模拟模块、行为库构建模块及行为数据库;
模拟任务下发模块用于:将下发的任务配置文件存储在任务配置文件库中;模拟机器人会自动接收该任务配置文件。该模块是模拟机器人的输入模块。模拟任务解析模块用于:从任务配置文件库中获取任务配置文件,对任务配置文件进行解析操作,将解析得到的模拟参数传给自主模拟模块;自主模拟模块用于:接收到模拟参数之后,设置自身的模拟参数,选择模拟方法进行自主的行为模拟;行为库构建模块用于:将模拟操作行为存储到行为数据库中。
模拟任务下发模块是从任务配置文件库中读取到实现下发存储的任务配置文件,是由数据库提取数据和向下一功能模块传输数据组成。模拟任务解析模块中,由于从模拟任务下发模块接收到的数据是多种格式,所以需要对文件进行解析,将其转换成机器人代理能够处理的信息,其组成是对任务配置文件进行接收然后进行信息的转换。自主模拟模块通过从模拟任务解析模块读取到解析后的信息,设置自身的参数,启动调用计算机系统和目标软件的接口,对目标软件进行行为模拟。行为库构建模块主要是代理机器人进行行为模拟之后,将成功模拟的行为进行数据库存储,组成行为数据库。
实施例2
实施例1所述的一种Windows窗体应用程序行为模拟机器人的工作方法,如图2、图3所示,包括步骤如下:
(1)模拟任务下发模块将下发的任务配置文件保存在计算机本地,然后通过计算机系统内部的通信监听,将任务配置文件存储在任务配置文件库中;
(2)模拟任务解析模块从任务配置文件库中获取任务配置文件,对任务配置文件进行解析操作,将解析得到的模拟参数传给自主模拟模块,模拟参数包括需要进行模拟的目标软件名称、目标软件中的按钮集合、目标软件的安装路径、行为模拟的目标动作或者状态、选用的模拟方法;
(3)自主模拟模块接收到模拟参数之后,设置自身的模拟参数,选择模拟方法进行自主的行为模拟;
(4)行为库构建模块将模拟操作行为存储到行为数据库中,将模拟操作行为是指机器人按照任务配置文件中执行的模拟软件行为序列。
步骤(2)中,模拟任务解析模块通过网络协议或者计算机内部通信监听,此处内部的监听是在计算机系统层面,对任务配置文件进行不断的读取,并比较文件是否发生修改和变化,来达到监听文件的目的。从任务配置文件库中获取任务配置文件。
任务配置文件的文本格式类型可以是Windows主流的文本格式类型,包括.csv、.txt、.json。
步骤(2)中,由于从任务下发模块接收到的数据是多种格式,所以需要对文件进行解析,对任务配置文件进行解析操作,是指:对不同文件格式的任务配置文件按照文件规则进行编码以及格式转换,将其转换成模拟机器人能够处理的信息即模拟参数。例如,任务配置文件为json格式文件,模拟任务解析模块在识别判断出为json格式之后,按照json文件结构进行读取,其中模拟任务解析模块是由python语言编写的,所以需要有python和json文件之间类型转换关系,其中Python编码为JSON类型转换对应表如下表1所示:
表1
JSON解码为Python类型转换对应表2如下所示;
表2
JSON类型 | Pyhon类型 |
object | dict |
array | list |
string | str |
number(int) | int |
number(real) | float |
true | True |
false | False |
按照这种Json与编程语言之间的编码解码的关系,将Json文件进行解码,转换编程语言类型,也是就是计算机高级语言类型,在程序运行时,编程语言的语言解释器再将这些而类型的数据编译成机器语言,也就是计算机能够处理的信息。如果是其他格式的文件,过程是类似的。
步骤(3)中,自主模拟模块接收到模拟参数之后,设置自身的模拟参数,调用Windows窗口应用程序的句柄对软件用户行为进行模拟,如图4所示,包括步骤如下:
首先,自主模拟模块接收到通过步骤(2)解析得到的任务配置文件中的行为模拟的目标动作或者状态;
然后,在程序设计中,句柄(handle)是Windows操作系统用来标识被应用程序所创建或使用的对象的整数。其本质相当于带有引用计数的智能指针。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,可以使用句柄。自主模拟模块调用Windows窗口应用程序的句柄对软件用户行为进行模拟,包括步骤如下:
A、模拟机器人执行任务配置文件命令,启动目标软件;
B、调用系统API,获取系统API随机给当前窗体软件分配的窗体标识符号PID;
C、调用系统API,获取到软件父窗口的PID;
D、定位到父窗口位置后,循环遍历父窗口中的句柄元素,直到找到需要操作的目标元素;
E、发送根据解析后的任务配置文件的模拟参数;
F、执行元素动作。
实施例3
根据实施例2所述的一种Windows窗体应用程序行为模拟机器人的工作方法,其区别在于:
步骤(3)中,自主模拟模块接收到模拟参数之后,设置自身的模拟参数,选用图像识别模拟方法,通过图形识别对软件多个弹出窗口的处理,以及弹出窗口的按钮进行定位,如图5所示,包括步骤如下:
首先,使用基于OCR图像识别方法对弹出窗口和弹出窗口的按钮进行识别,识别后将软件的界面图像转换成具有二维位置坐标信息的图片像素;图片像素信息是指截图中整个截图所有像素点的信息,这些信息中包括像素点的位置信息,即二维位置坐标信息,二维位置坐标信息是一个二维坐标,例如(x,y)),色彩RGB信息,灰度信息等等。
然后,自主模拟模块驱动鼠标进行行为的生成,包括步骤如下:
a、模拟机器人执行任务配置文件命令,启动目标软件;
b、对启动的目标软件进行窗口截图操作;
c、对截图进行OCR识别操作,获取截图转换的像素二维位置信息;使用惠普实验室开源OCR引擎Tesseract,行为模拟机器人在获取到截图之后,使用OCR引擎Tesseract对图片进行识别,识别之后产生该截图的信息文件,该信息文件中包括像素二维位置信息,像素二维位置信息包括像素及截图中的文字。
d、使用搜索算法,检索出需要操作区域的像素位置范围;实现过程为:首先OCR引擎识别后得到的截图信息文件中识别的文字和其像素位置信息是有对应关系的,保存在文件中,并且这种对应关系是唯一的,对操作区域的像素位置范围的检索,是一种定位区域边界的像素位置的过程,因为截图中任意的像素区域都可以使用四个不重复的像素点的位置来标识,只要得到这四个点的位置信息就可以定位该区域。所以,文件中的搜索可以看成一个匹配过程,这里使用Sunday匹配算法进行匹配。
e、调用系统API,对检索出的区域进行点击操作;
f、执行动作。
本实施例对记事本进行“格式-字体-确定”行为模拟的截图如图6所示,对图6中的截图进行OCR识别操作获取的转换的有二位像素位置信息部分示意图如图7(a)、图7(b)、图7(c)所示。
实施例4
根据实施例2或3所述的一种Windows窗体应用程序行为模拟机器人的工作方法,其区别在于:
以Windows自带应用“记事本”为例的行为库建立(部分),记事本软件行为模拟行为库建立(部分)如表3所示:
表3
首先,将目标任务以配置文件的形式编辑好,然后,进行配置文件的下发操作,配置文件会被存储数据库中,自主行为模拟机器人从数据库中取得任务文件后对任务配置文件进行解析操作,解析完成后机器人接收到行为模拟参数选取行为模拟方式。之后,机器人开始自主模拟,并将自主模拟的行为记录到行为库中。机器人模拟结束后,显示提示信息。该提示消息包含自主模拟机器人模拟过程中的所有操作,至此整个智能机器人的工作结束。
Claims (8)
1.一种Windows窗体应用程序行为模拟机器人,包括模拟任务下发模块、任务配置文件库、模拟任务解析模块、自主模拟模块、行为库构建模块及行为数据库;
所述模拟任务下发模块用于:将下发的任务配置文件存储在所述任务配置文件库中;所述模拟任务解析模块用于:从所述任务配置文件库中获取任务配置文件,对任务配置文件进行解析操作,将解析得到的模拟参数传给所述自主模拟模块;所述自主模拟模块用于:接收到模拟参数之后,设置自身的模拟参数,选择模拟方法进行自主的行为模拟;所述行为库构建模块用于:将模拟操作行为存储到所述行为数据库中。
2.权利要求1所述的Windows窗体应用程序行为模拟机器人的工作方法,其特征在于,包括步骤如下:
(1)所述模拟任务下发模块将下发的任务配置文件存储在所述任务配置文件库中;
(2)所述模拟任务解析模块从所述任务配置文件库中获取任务配置文件,对任务配置文件进行解析操作,将解析得到的模拟参数传给所述自主模拟模块,模拟参数包括需要进行模拟的目标软件名称、目标软件中的按钮集合、目标软件的安装路径、行为模拟的目标动作或者状态、选用的模拟方法;
(3)所述自主模拟模块接收到模拟参数之后,设置自身的模拟参数,选择模拟方法进行自主的行为模拟;
(4)所述行为库构建模块将模拟操作行为存储到所述行为数据库中,将模拟操作行为是指机器人按照任务配置文件中执行的模拟软件行为序列。
3.根据权利要求2所述的Windows窗体应用程序行为模拟机器人的工作方法,其特征在于,步骤(2)中,所述模拟任务解析模块通过网络协议或者计算机内部通信监听,从所述任务配置文件库中获取任务配置文件。
4.根据权利要求2所述的Windows窗体应用程序行为模拟机器人的工作方法,其特征在于,所述任务配置文件的文本格式类型包括.csv、.txt、.json。
5.根据权利要求2所述的Windows窗体应用程序行为模拟机器人的工作方法,其特征在于,步骤(2)中,对任务配置文件进行解析操作,是指:对不同文件格式的任务配置文件按照文件规则进行编码以及格式转换,将其转换成模拟机器人能够处理的信息即模拟参数。
6.根据权利要求2-5任一所述的Windows窗体应用程序行为模拟机器人的工作方法,其特征在于,步骤(3)中,所述自主模拟模块接收到模拟参数之后,设置自身的模拟参数,调用Windows窗口应用程序的句柄对软件用户行为进行模拟,包括步骤如下:
首先,所述自主模拟模块接收到通过步骤(2)解析得到的任务配置文件中的行为模拟的目标动作或者状态;
然后,所述自主模拟模块调用Windows窗口应用程序的句柄对软件用户行为进行模拟,包括步骤如下:
A、模拟机器人执行任务配置文件命令,启动目标软件;
B、调用系统API,获取系统API随机给当前窗体软件分配的窗体标识符号PID;
C、调用系统API,获取到软件父窗口的PID;
D、定位到父窗口位置后,循环遍历父窗口中的句柄元素,直到找到需要操作的目标元素;
E、发送根据解析后的任务配置文件的模拟参数;
F、执行元素动作。
7.根据权利要求2-5任一所述的Windows窗体应用程序行为模拟机器人的工作方法,其特征在于,步骤(3)中,所述自主模拟模块接收到模拟参数之后,设置自身的模拟参数,选用图像识别模拟方法,通过图形识别对软件多个弹出窗口的处理,以及弹出窗口的按钮进行定位,包括步骤如下:
首先,使用基于OCR图像识别方法对弹出窗口和弹出窗口的按钮进行识别,识别后将软件的界面图像转换成具有二维位置坐标信息的图片像素;
然后,所述自主模拟模块驱动鼠标进行行为的生成,包括步骤如下:
a、模拟机器人执行任务配置文件命令,启动目标软件;
b、对启动的目标软件进行窗口截图操作;
c、对截图进行OCR识别操作,获取截图转换的像素二维位置信息;
d、使用搜索算法,检索出需要操作区域的像素位置范围;
e、调用系统API,对检索出的区域进行点击操作;
f、执行动作。
8.根据权利要求7所述的Windows窗体应用程序行为模拟机器人的工作方法,其特征在于,步骤c中,是指:行为模拟机器人在获取到截图之后,使用OCR引擎Tesseract对图片进行识别,识别之后产生该截图的信息文件,该信息文件中包括像素二维位置信息,像素二维位置信息包括像素及截图中的文字。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010722934.1A CN111880897A (zh) | 2020-07-24 | 2020-07-24 | 一种Windows窗体应用程序行为模拟机器人及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010722934.1A CN111880897A (zh) | 2020-07-24 | 2020-07-24 | 一种Windows窗体应用程序行为模拟机器人及其工作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111880897A true CN111880897A (zh) | 2020-11-03 |
Family
ID=73201351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010722934.1A Pending CN111880897A (zh) | 2020-07-24 | 2020-07-24 | 一种Windows窗体应用程序行为模拟机器人及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111880897A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112847337A (zh) * | 2020-12-24 | 2021-05-28 | 珠海新天地科技有限公司 | 一种用于工业机器人自主操作应用程序的方法 |
CN113642408A (zh) * | 2021-07-15 | 2021-11-12 | 杭州玖欣物联科技有限公司 | 一种工业互联网实时处理解析图片数据的方法 |
CN114461122A (zh) * | 2022-04-12 | 2022-05-10 | 杭州实在智能科技有限公司 | Rpa元素拾取同屏切换方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100682667B1 (ko) * | 2005-09-07 | 2007-02-15 | 엘지전자 주식회사 | 컴퓨터 윈도우 기반의 디지털 텔레비젼 수신기 시뮬레이션시스템 |
CN103577608A (zh) * | 2013-11-20 | 2014-02-12 | 北京奇虎科技有限公司 | 一种对文件/文件夹进行操作的方法及装置 |
CN110851299A (zh) * | 2019-11-15 | 2020-02-28 | 深圳前海微众银行股份有限公司 | 自动化流程的异常排除方法、装置、设备及存储介质 |
CN111309235A (zh) * | 2020-02-28 | 2020-06-19 | 中国电子信息产业集团有限公司第六研究所 | 一种软件的控制方法及装置、可读存储介质 |
-
2020
- 2020-07-24 CN CN202010722934.1A patent/CN111880897A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100682667B1 (ko) * | 2005-09-07 | 2007-02-15 | 엘지전자 주식회사 | 컴퓨터 윈도우 기반의 디지털 텔레비젼 수신기 시뮬레이션시스템 |
CN103577608A (zh) * | 2013-11-20 | 2014-02-12 | 北京奇虎科技有限公司 | 一种对文件/文件夹进行操作的方法及装置 |
CN110851299A (zh) * | 2019-11-15 | 2020-02-28 | 深圳前海微众银行股份有限公司 | 自动化流程的异常排除方法、装置、设备及存储介质 |
CN111309235A (zh) * | 2020-02-28 | 2020-06-19 | 中国电子信息产业集团有限公司第六研究所 | 一种软件的控制方法及装置、可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112847337A (zh) * | 2020-12-24 | 2021-05-28 | 珠海新天地科技有限公司 | 一种用于工业机器人自主操作应用程序的方法 |
CN113642408A (zh) * | 2021-07-15 | 2021-11-12 | 杭州玖欣物联科技有限公司 | 一种工业互联网实时处理解析图片数据的方法 |
CN114461122A (zh) * | 2022-04-12 | 2022-05-10 | 杭州实在智能科技有限公司 | Rpa元素拾取同屏切换方法及系统 |
CN114461122B (zh) * | 2022-04-12 | 2022-07-19 | 杭州实在智能科技有限公司 | Rpa元素拾取同屏切换方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111880897A (zh) | 一种Windows窗体应用程序行为模拟机器人及其工作方法 | |
CN108647520B (zh) | 一种基于脆弱性学习的智能模糊测试方法与系统 | |
CN109408384B (zh) | 软件应用的测试方法、装置、处理器及电子装置 | |
CN112149399B (zh) | 基于rpa及ai的表格信息抽取方法、装置、设备及介质 | |
CN112819686A (zh) | 基于人工智能的图像风格处理方法、装置及电子设备 | |
CN108563951B (zh) | 病毒检测方法及装置 | |
Efford et al. | Package ‘secr’ | |
CN112527676A (zh) | 模型自动化测试方法、装置及存储介质 | |
CN114611041A (zh) | 一种前端页面构建方法、装置、计算机设备及介质 | |
CN117435505A (zh) | 一种性能测试脚本可视化生成方法 | |
CN111339535A (zh) | 面向智能合约代码的漏洞预测方法、系统、计算机设备和存储介质 | |
Dzhusupova et al. | Pattern recognition method for detecting engineering errors on technical drawings | |
CN114707151B (zh) | 一种基于api调用和网络行为的僵尸软件检测方法 | |
CN115118687B (zh) | 消息推送方法、装置、存储介质及计算机设备 | |
CN113703637A (zh) | 巡检任务代码化方法、装置、电子设备和计算机存储介质 | |
CN111539390A (zh) | 一种基于Yolov3的小目标图像识别方法、设备和系统 | |
US20240160417A1 (en) | Systems and methods for auto-captioning repositories from source code | |
CN115495057B (zh) | 实现windows和HDFS通信的方法和系统 | |
CN116737964B (zh) | 一种人工智能大脑系统 | |
CN110895508B (zh) | 生成遍历测试路径的方法及装置 | |
US20240176673A1 (en) | Systems and methods for automation discovery and analysis using action sequence segmentation | |
US20210365354A1 (en) | Accelerating application interrogation and interaction mapping | |
CN115858049A (zh) | Rpa流程组件化编排方法、装置、设备和介质 | |
US20230062297A1 (en) | Systems and methods for code repository embedding for tagging and summarization tasks using attention on multiple code domains | |
WO2023238244A1 (ja) | 探索装置、探索方法および探索プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |