一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于RPA的轮盘菜单快速启动方法与流程

2022-11-16 17:24:47 来源:中国专利 TAG:

一种基于rpa的轮盘菜单快速启动方法
技术领域
1.本发明涉及rpa技术领域,具体涉及一种基于rpa的轮盘菜单快速启动方法。


背景技术:

2.机器人流程自动化(roboticprocessautomation)简称rpa,是通过机器人软件,模拟人在计算机上的操作,按规则自动执行流程任务。随着个人pc机的普及,越来越多的桌面办公软件应运而生,提升办公效率。一些常用软件会有很多快捷的操作,比如excel的插入批注、切换sheet页的功能,谷歌浏览器的清理缓存、页面长截图等。目前,这些操作在日常的软件使用中经常被用到,但每种功能都需要开启一个工具来实现,在日常工作中较为繁琐,而且容易忘记。


技术实现要素:

3.本发明的目的在于,提供一种基于rpa的轮盘菜单快速启动方法。本发明可以便捷地进行rpa应用的使用,方便了人员的办公,提高了工作效率。
4.本发明提供的技术方案如下:一种基于rpa的轮盘菜单快速启动方法,包括rpa机器人,rpa机器人中设有轮盘菜单;所述的轮盘菜单包括全局轮盘以及局部轮盘;所述全局轮盘用于配置存放不同的rpa应用;所述局部轮盘用于配置存放不同软件界面环境中对应的rpa应用,其特征在于:监控鼠标操作和按键操作,根据鼠标操作或按键操作获取对应激活的rpa应用并执行;若是局部轮盘中的rpa应用,则会获取对应软件界面环境中的rpa应用并填充到轮盘的每个子项;若不是局部轮盘中的rpa应用,则会将全局轮盘设置的rpa应用填充到轮盘;
5.所述键盘操作的监控通过键盘监控器负责监听键盘按键;所述键盘监控器内部设有键盘钩子,键盘钩子中设置键盘钩子回调函数,当有键盘按下时,触发键盘钩子回调函数来处理按键消息;
6.所述鼠标的监控通过鼠标监控器负责监听鼠标消息;所述鼠标监控器内设有鼠标钩子,鼠标钩子中设置有鼠标钩子回调函数;当有鼠标操作时,触发鼠标钩子回调函数来处理鼠标消息。
7.上述的基于rpa的轮盘菜单快速启动方法,所述键盘钩子回调函数为hookfunc,设置方法是接收一个int类型的结构体,通过消息响应机制判断消息类型是否是按下键或者松开键,并获取到按下的虚拟按键值;
8.键盘钩子回调函数处理按键消息是通过注册windowsapi来获取消息,然后利用当前应用程序所在路径及环境变量方法获取到进程模块,再通过setwindowshookex方法获取到返回的句柄,使当前进程模块能够监视到winddows的wh_ketboard_ll消息,当有键盘按下时,触发键盘钩子回调函数来处理按键消息,并向全局消息队列发送。
9.前述的基于rpa的轮盘菜单快速启动方法,所述鼠标钩子回调函数为hookfunc,设置方法是接收一个int类型的结构体,通过消息响应机制判断鼠标消息类型;
10.鼠标钩子回调函数处理鼠标消息是通过注册windowsapi来获取消息,然后利用当前应用程序所在路径及环境变量方法获取到进程模块,再通过setwindowshookex方法获取到返回的句柄,使当前进程模块能够监视到winddows的windows_hook_id.wh_mouse_ll消息,当有鼠标操作时,触发鼠标钩子回调函数来处理鼠标消息,并向全局消息队列发送。
11.前述的基于rpa的轮盘菜单快速启动方法,所述rpa应用的执行是将激活的rpa应用添加到全局消息队列中,然后rpa机器人启动监控线程,监控全局消息队列;
12.当一个应用运行结束之后释放信号,监控线程接收到释放信号以后,rpa机器人的程序自动向下获取全局任务队列中的任务,根据任务信息触发对应的应用运行,且修改信号状态;若无任务时,则会阻塞监控线程,直到获取到新的任务。
13.前述的基于rpa的轮盘菜单快速启动方法,若rpa机器人自动化运行rpa应用失败或运行取消,则进行异常类错误处理。
14.前述的基于rpa的轮盘菜单快速启动方法,所述异常类错误处理包括如下步骤:
15.步骤1、设置消息处理模块,用于触发全局错误处理;
16.步骤2、设置全局任务队列,存储待执行rpa应用的任务信息;
17.步骤3、设置监听线程,监听线程监听全局任务队列;
18.步骤4、在某个rpa应用运行结果为异常退出时,监听线程监听回传的任务状态,开启异常处理通知;
19.步骤5、调用服务端接口,获取步骤4中开启的异常处理通知,构成全局错误列表;
20.步骤6、消息处理模块根据全局错误列表依次触发全局错误处理。
21.前述的基于rpa的轮盘菜单快速启动方法,所述消息处理模块为邮件处理通知模块、即时通讯软件消息通知模块和/或指定应用执行模块。
22.前述的基于rpa的轮盘菜单快速启动方法,所述邮件处理通知模块使用第三方库mailkit的smtpclient创建smtp连接,通过用户设置的登陆和授权码相关信息,连接并通过send方法发送异常处理通知信息到指定邮箱;
23.所述即时通讯软件消息通知模块将需要发送的异常处理通知消息组装成平台需要的json格式,通过restsharp库创建一个http请求对象,将用户设置的webhook地址和密钥传入,调用excute方法采用post的方式发送到对应通讯软件的服务端,服务端将收到的信息再转发到用户设置的即时通讯软件的客户端;
24.所述指定应用执行模块在触发全局错误处理时,选择执行指定的rpa应用。
25.与现有技术相比,本发明通过预先通过轮盘菜单将应用列表中的rpa应用进行存放,即通过应用列表获取rpa应用,将rpa应用配置至轮盘菜单图形界面中,然后设置相应的键盘操作监控方法以及设置相应的鼠标操作监控方法,从而可以实时的监控使用者的键盘操作和鼠标操作,并通过轮盘菜单就可以快速调动rpa应用,方便了人员的办公,提高了工作效率。本发明可以对于常用软件的高频操作,比如excel的合并单元格、切换sheet页等能快速一键唤起,提高工作效率;对于一些非高频操作,比如打开hosts,清理google浏览器缓存等,操作步骤较为繁琐,且不容易记住,即可编写成极速应用,在需要的时候一键唤起,方便快捷。本发明支持多种类型的应用执行,灵活性强,满足用户的多种使用场景。此外,本发明将rpa机器人自动化运行rpa应用结果的异常处理通知填充到全局错误列表中,然后设置消息处理模块,消息处理模块根据全局错误列表依次触发全局错误处理,以此本发明的全
局错误处理,不需要针对每个应用都设置一遍异常处理步骤,降低了开发和维护的成本;本发明可以支持多种形式和多种软件的触发,能够满足大部分的办公应用场景,让用户能随时随地的了解rpa应用是否异常,且能及时处理。本发明还可以通过执行指定rpa应用,可以对执行的出错应用做一些数据回滚或者报警类的处理,在处理方式上更加的灵活和高效。
附图说明
26.图1是本发明的轮盘菜单示意图;
27.图2是本发明的应用列表示意图。
28.图3是实施例2的流程示意图;
29.图4是邮件处理通知模块设置示意图;
30.图5是即时通讯软件消息通知模块设置示意图;
31.图6是指定应用执行模块设置示意图。
具体实施方式
32.下面结合实施例和附图对本发明作进一步的说明,但并不作为对本发明限制的依据。
33.实施例:一种基于rpa的轮盘菜单快速启动方法,包括rpa机器人,该rpa机器人为影刀机器人,可通过网页下载安装,所述rpa机器人中设有轮盘菜单,如图1所示。所述轮盘菜单提供展示rpa应用的图形界面,所述轮盘菜单环形分布有6-12个rpa应用配置区域,本实施例中的轮盘菜单具有9个应用配置区域,每个配置区域单独配置并展示一个rpa应用,以及
34.应用列表,如图2所示,提供rpa应用;所述的应用列表为计算机程序,其目的是用于获取pra应用,pra应用来源于应用市场,包括但不限于官方市场、企业市场、下载软件、自主研发应用和自主获取应用等
35.本实施例中以搜索的方式向系统服务端发送请求,获取请求的rpa应用并加载在列表中显示,从而利用应用列表获取rpa应用,将rpa应用配置至轮盘菜单图形界面中,通过轮盘菜单快速调动rpa应用;当然,在其他实施例中,轮盘菜单第一次调用或者配置页面第一次打开,轮盘菜单里中具有默认的应用,可以让用户直接调用;当然也可以通过应用列表的程序默认进行轮盘菜单的配置。
36.所述的轮盘菜单包括全局轮盘以及局部轮盘;所述全局轮盘用于配置存放不同的rpa应用,该全局轮盘不针对某一软件,通过鼠标、键盘、点击、快捷键等方式直接在显示屏幕上进行显示,用于展示桌面操作过程中可能会使用到的rpa应用,例如计算器、截图、中英翻译、图像文字识别、消息批量发送等;所述局部轮盘用于配置存放不同软件界面环境中对应的rpa应用,即局部轮盘是针对某一软件进行rpa应用配置的,通过鼠标、键盘、点击、快捷键等方式直接在软件界面进行显示,用于展示该软件在使用过程中可能会使用到的rpa应用,例如邮箱软件,该局部轮盘即可配置草稿箱、已发送邮件、收件邮件、写信程序、垃圾邮件、删除中心等,针对局部轮盘中的rpa应用,存在rpa应用属于软件内部的应用功能,因此对于这类rpa应用,采用自主编程的方式(即应用列表中应用市场属于自主研发和自主获取的)将软件内部的应用功能进行创建快捷方式,将快捷方式列入应用市场中,从而进行局部
轮盘的配置。
37.为实现轮盘菜单快速,通过监控鼠标操作和按键操作,根据鼠标操作或按键操作获取对应激活的rpa应用并执行;若是局部轮盘中的rpa应用,则会获取对应软件界面环境中的rpa应用并填充到轮盘的每个子项;若不是局部轮盘中的rpa应用,则会将全局轮盘设置的rpa应用填充到轮盘。
38.实施例中,所述键盘操作的监控通过键盘监控器(keyboardmonitor类)负责监听键盘按键;所述键盘监控器内部设有键盘钩子(keyboardhook钩子类),键盘钩子中设置键盘钩子回调函数,当有键盘按下时,触发键盘钩子回调函数来处理按键消息;
39.具体的,keyboardmonitor类负责监听键盘按键,内部组合keyboardhook钩子类,keyboardhook内部组合了一个hhook类,在程序启动的时候设置键盘钩子回调函数,监听键盘的按键,实现逻辑如下:
40.(1)设置一个键盘钩子回调函数:hookfunc,设置方法是接收一个int类型的ncode,wparam和lparam类型的结构体(wparam和lparam为消息响应机制),通过wparam消息判断消息类型是否是按下键(keydown)或者松开键(keyup),通过lparam消息获取到按下的虚拟按键(虚拟按键由系统定义,每一个按键会对应一个标准的16进制表示方法,可通过http://www.pinvoke.net/default.aspx/enums/vk.html查看c#表示方式)值。
41.(2)编写好键盘钩子回调函数以后,接下来注册windowsapi来获取消息。通过当前应用程序所在路径及环境变量(process.getcurrentprocess().mainmodule)方法获取到进程模块(processmodule),通过user32动态库提供的setwindowshookex方法,获取到返回的句柄,使当前进程模块能够监视到winddows的wh_ketboard_ll消息,当有键盘按下时,会触发设置的键盘钩子回调函数来处理按键消息,并向上层订阅端触发事件,使得按键消息向全局消息队列发送。
42.所述鼠标的监控通过鼠标监控器负责监听鼠标消息;所述鼠标监控器内设有鼠标钩子,鼠标钩子中设置有鼠标钩子回调函数;当有鼠标操作时,触发鼠标钩子回调函数来处理鼠标消息;所述鼠标消息包括鼠标移动、鼠标滚轮、双击、按下中间按钮、松开中间按钮、按下鼠标右键、松开鼠标右键、按下鼠标左键和松开鼠标左键。
43.具体的,鼠标监控器(mousemonitor类)负责监听鼠标事件,内部组合鼠标钩子(mousehook钩子类),mousehook内部组合hhook类,在程序启动的时候设置鼠标钩子回调函数,监听鼠标相关事件,实现逻辑如下:
44.(1)设置一个鼠标钩子回调函数:hookfunc,设置方法是接收一个int类型的结构体ncode,wparam和lparam类型的结构体,通过wparam判断判断鼠标消息类型,触发对应事件;
45.(2)编写好鼠标钩子回调函数以后,接下来注册windowsapi来获取消息。通过当前应用程序所在路径及环境变量(process.getcurrentprocess().mainmodule)方法获取到进程模块(processmodule),通过user32动态库提供的setwindowshookex方法,获取到返回的句柄,使当前进程模块能够监视到winddows的wh_ketboard_ll消息,当有鼠标操作时,触发鼠标钩子回调函数来处理鼠标消息,并向上层订阅端触发事件,使得按键消息向全局消息队列发送。
46.所述rpa应用执行是,rpa机器人的程序封装priorityblockingcollection(优先
级阻塞收集)类,内部组合了一个blockingcollection(阻塞集合)类型的线程安全的全局任务队列,轮盘菜单激活的rpa应用都会进入到该队列中排队执行,
47.在程序启动之初,会初始化该全局任务队列,全局任务队列里存放任务信息(taskinfo),任务信息包括任务id、任务名称、任务类型(触发器类型)、创建时间、是否排队执行(由于应用运行是单线程模型,即每次只能运行一个应用,所以需要排队执行,当任务不选择排队执行且此时刚好有任务在运行,则会直接将其状态修改为失败,不再执行)等;
48.在rpa机器人的程序运行时,rpa机器人启动监控线程监听该全局任务队列;通过autoresetevent(自动重置事件)信号量控制,当一个应用运行结束之后,调用autoresetevent的set方法释放信号,此时阻塞在waitone(等待)处的监控线程接收到释放信号以后,rpa机器人的程序自动向下获取全局任务队列中的任务,且修改信号状态;若无任务时,则会阻塞监控线程,直到获取到新的任务;
49.用户唤起轮盘菜单并选择某个rpa应用时,即将选中的应用信息封装好,添加到上述的全局消息队列中,等候排队执行。
50.本发明通过预先通过轮盘菜单将应用列表中的rpa应用进行存放,即通过应用列表获取rpa应用,将rpa应用配置至轮盘菜单图形界面中,然后设置相应的键盘操作监控方法以及设置相应的鼠标操作监控方法,从而可以实时的监控使用者的键盘操作和鼠标操作,并通过轮盘菜单就可以快速调动rpa应用,方便了人员的办公,提高了工作效率。
51.实施例2:本实施例在实施例1的基础上,若rpa机器人自动化运行rpa应用任务失败或运行取消,则进行异常类错误处理,如图3所示,包括如下步骤:
52.步骤1、设置消息处理模块,用于触发全局错误处理;
53.所述消息处理模块为邮件处理通知模块、即时通讯软件消息通知模块和/或指定应用执行模块。
54.如图4所示,所述邮件处理通知模块在触发全局错误处理时,将异常处理通知进行发送至指定邮箱,设置多个接收邮件的账户,用户可配置由影刀rpa机器人发送,也可自定义邮箱发送。
55.如图5所示,所述即时通讯软件消息通知模块在触发全局错误处理时,将异常处理通知进行发送至相关的告警通知群。本实施例支持主流的办公通讯软件,包括钉钉、飞书、企业微信,可在各类软件的pc客户端获取webhook地址,获取该地址之后,即可向相关的告警通知群自动推送消息。
56.如图6所示,所述指定应用执行模块在触发全局错误处理时,选择执行指定的rpa应用,该指定的rpa应用可以对执行的出错应用做一些数据回滚或者报警类的处理,在处理方式上更加的灵活和高效。
57.步骤2、设置全局任务队列,存储待执行rpa应用的任务信息;所述全局任务队列是在rpa机器人的程序封装priorityblockingcollection(优先级阻塞收集)类,内部组合了一个blockingcollection(阻塞集合)类型的线程安全的全局任务队列,激活的rpa应用都会进入到该队列中排队执行。
58.在程序启动之初,会初始化该全局任务队列,全局任务队列里存放任务信息(taskinfo),任务信息包括任务id、任务名称、任务类型(触发器类型)、创建时间、是否排队执行(由于应用运行是单线程模型,即每次只能运行一个应用,所以需要排队执行,当任务
不选择排队执行且此时刚好有任务在运行,则会直接将其状态修改为失败,不再执行)等;
59.步骤3、设置监听线程,监听线程监听全局任务队列;
60.步骤4、在某个rpa应用运行结果为异常退出时,监听线程监听回传的任务状态,开启异常处理通知;具体是,监听线程获取任务,通过autoresetevent(自动重置事件)信号量控制,当一个应用运行结束之后,调用continuewith设置好的回调方法,当回传的任务状态isfaulted(有缺陷)是true的时候,会调用handletaskerror(处理错误任务)方法来处理开启的异常处理通知。
61.步骤5、调用服务端接口,获取步骤4中开启的异常处理通知,构成全局错误列表;实施例中,当获取到的信息不为空时,遍历获取到的信息,根据不同的errorhandingkind(错误处理)类型,来添加到类型为ierrorhandingrule(错误处理规则)的列表当中,得到全局错误列表;
62.步骤6、消息处理模块根据全局错误列表依次触发全局错误处理。
63.若是邮箱触发,则使用第三方库mailkit的smtpclient创建smtp连接,通过用户设置的登陆和授权码相关信息,连接并通过send方法发送消息到指定邮箱;
64.若是即时通讯软件触发的方式,则是将需要发送的异常处理通知消息组装成平台需要的json格式,通过restsharp库创建一个http请求对象,将用户设置的webhook地址和密钥传入,调用excute方法采用post的方式发送到对应通讯软件的服务端,服务端将收到的信息再转发到用户设置的即时通讯软件的客户端。
65.若是指定应用执行模块触发,则将rpa应用的任务信息组装后,添加到blockingcollection全局任务队列中等待排队执行。
66.通过以上方式,本发明将rpa应用运行结果的异常处理通知填充到全局错误列表中,然后设置消息处理模块,消息处理模块根据全局错误列表依次触发全局错误处理,以此本发明的全局错误处理,不需要针对每个应用都设置一遍异常处理步骤,降低了开发和维护的成本;本发明可以支持多种形式和多种软件的触发,能够满足大部分的办公应用场景,让用户能随时随地的了解rpa应用是否异常,且能及时处理。本发明还可以通过执行指定rpa应用,可以对执行的出错应用做一些数据回滚或者报警类的处理,在处理方式上更加的灵活和高效。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献