Linux系统下用于RPA的鼠标交互拾取方法和系统与流程

文档序号:35994462发布日期:2023-11-16 05:01阅读:107来源:国知局
Linux系统下用于RPA的鼠标交互拾取方法和系统与流程

本发明涉及rpa,尤其是涉及linux系统下用于rpa的鼠标交互拾取方法和系统。


背景技术:

1、随着国产化linux系统的推进,linux版本的rpa软件需求越来越广泛。对于普通用户,rpa软件使用的难点在于找到要操作的界面元素,比如按钮和菜单等。linux系统提供了at-spi编程接口,可以获取系统控件列表。在linux系统下,用户想要从系统控件列表中找到自己想要操作的那个控件,目前有两种方法:1)写编程脚本定位控件。这种方法对于普通桌面用户比较困难;2)一些rpa软件把控件列表展示在界面上,让用户点选。由于linux桌面系统中的控件数量比较庞大,这种方式费时费力,而且不直观。用户无法把列表中所选的控件和界面上实际的控件关联起来。

2、目前采用的定位方法是鼠标滑过系统界面控件,该控件高亮显示选择框,用户点击选择框,该控件被拾取。这种拾取方式在windows版rpa软件中被广泛应用,但是如果应用在linux版rpa软件中,存在以下问题:1)at-spi接口返回的控件列表中只有控件的相对位置,没有控件的绝对位置;2)at-spi接口返回的控件列表无法反应控件的覆盖顺序,即无法确定控件所在的窗口处于顶层还是处于底层;3)国产化linux切换到wayland环境后,对应用程序的权限限制更加严格,使rpa软件无法监听到自己窗口范围之外的鼠标消息。


技术实现思路

1、有鉴于此,本发明的目的在于提供linux系统下用于rpa的鼠标交互拾取方法和系统,从窗口管理器中对每个控件进行查询得到控件对应的绝对位置;将控件列表中的控件按照窗口层级表进行排序,创建控件层级表,从而确定控件的覆盖顺序;通过全屏半透明拾取窗口覆盖整个屏幕,从而监听所有鼠标信息。

2、第一方面,本发明实施例提供了linux系统下用于rpa的鼠标交互拾取方法,应用于linux系统下,所述linux系统包括rpa软件和窗口管理器;所述方法包括:

3、当所述rpa软件监听到所述窗口管理器发送的激活通知后,创建或更新窗口层级表;

4、获取控件列表,所述控件列表包括多个控件;

5、从所述窗口管理器中对每个所述控件进行查询,得到每个所述控件对应的绝对位置;

6、将每个所述控件按照所述窗口层级表进行排序,从而创建控件层级表,并将每个所述控件对应的绝对位置存储在所述控件层级表中;

7、获取全屏半透明拾取窗口的鼠标消息,将所述鼠标消息的绝对位置与所述控件层级表中每个所述控件对应的绝对位置进行比对,得到匹配控件;

8、根据所述鼠标消息的属性对所述匹配控件进行相应处理。

9、进一步的,当所述rpa软件监听到所述窗口管理器发送的激活通知后,创建或更新窗口层级表,包括:

10、当所述rpa软件启动时,向所述窗口管理器发送注册信息;

11、当rpa软件启动到与所述鼠标交互拾取的时间段内,所述窗口管理器发送窗口激活通知;

12、接收所述窗口管理器发送的所述多个窗口对应的所述激活通知;

13、将所述多个窗口对应的激活通知按照激活时间的先后顺序进行排序,从而创建或更新所述窗口层级表。

14、进一步的,所述控件列表中的所述控件按照控件层级由高到低进行排序,所述控件列表还包括每个所述控件的相对位置、每个所述控件的大小、每个所述控件的进程id和窗口名称。

15、进一步的,从所述窗口管理器中对每个所述控件进行查询,得到每个所述控件对应的绝对位置包括,重复执行以下处理,直至每个所述控件均被遍历:

16、根据所述窗口名称从所述窗口管理器中查询窗口id;

17、根据所述窗口id从所述窗口管理器中查询所述窗口位置;

18、根据所述窗口位置和所述控件的相对位置,得到所述控件对应的绝对位置。

19、进一步的,将每个所述控件按照所述窗口层级表进行排序,从而创建控件层级表,包括:

20、根据每个所述控件的进程id从所述窗口层级表中进行查询,得到每个所述控件所在窗口层级;

21、当所述控件所在窗口层级为不同窗口层级时,将所述不同窗口层级的控件按照从高到低的顺序进行排序,得到排序后的窗口间的控件;

22、当所述控件所在窗口层级为同一窗口层级时,将所述同一窗口层级的控件按照尺寸由小到大进行排序,得到排序后的窗口内的控件;

23、根据所述排序后的窗口间的控件和所述排序后的窗口内的控件,创建所述控件层级表。

24、进一步的,根据所述鼠标消息的属性对所述匹配控件进行相应处理,包括:

25、当所述鼠标消息为鼠标移动消息时,获取所述匹配控件的绝对位置,并在所述匹配控件的绝对位置处高亮绘制选择框;

26、当所述鼠标消息为鼠标点击消息时,记录所述匹配控件的特征信息,并对所述特征信息进行拾取。

27、第二方面,本发明实施例提供了linux系统下用于rpa的鼠标交互拾取系统,应用于linux系统下,所述linux系统包括rpa软件和窗口管理器;所述系统包括:

28、窗口层级表创建模块,用于当所述rpa软件监听到所述窗口管理器发送的激活通知后,创建或更新窗口层级表;

29、获取模块,用于获取控件列表,所述控件列表包括多个控件;

30、查询模块,用于从所述窗口管理器中对每个所述控件进行查询,得到每个所述控件对应的绝对位置;

31、排序模块,用于将每个所述控件按照所述窗口层级表进行排序,从而创建控件层级表,并将每个所述控件对应的绝对位置存储在所述控件层级表中;

32、比对模块,用于获取全屏半透明拾取窗口的鼠标消息,将所述鼠标消息的绝对位置与所述控件层级表中每个所述控件对应的绝对位置进行比对,得到匹配控件;

33、处理模块,用于根据所述鼠标消息的属性对所述匹配控件进行相应处理。

34、进一步的,所述窗口层级表创建模块具体用于:

35、当所述rpa软件启动时,向所述窗口管理器发送注册信息;

36、当rpa软件启动到与所述鼠标交互拾取的时间段内,所述窗口管理器发送窗口激活通知;

37、接收所述窗口管理器发送的所述多个窗口对应的所述激活通知;

38、将所述多个窗口对应的激活通知按照激活时间的先后顺序进行排序,从而创建或更新所述窗口层级表。

39、本发明实施例提供了linux系统下用于rpa的鼠标交互拾取方法和系统,应用于linux系统下,linux系统包括rpa软件和窗口管理器;包括:当rpa软件监听到窗口管理器发送的激活通知后,创建或更新窗口层级表;获取控件列表,控件列表包括多个控件;从窗口管理器中对每个控件进行查询,得到每个控件对应的绝对位置;将每个控件按照窗口层级表进行排序,从而创建控件层级表,并将每个控件对应的绝对位置存储在控件层级表中;获取全屏半透明拾取窗口的鼠标消息,将鼠标消息的绝对位置与控件层级表中每个控件对应的绝对位置进行比对,得到匹配控件;根据鼠标消息的属性对匹配控件进行相应处理;从窗口管理器中对每个控件进行查询得到控件对应的绝对位置;将控件列表中的控件按照窗口层级表进行排序,创建控件层级表,从而确定控件的覆盖顺序;通过全屏半透明拾取窗口覆盖整个屏幕,从而监听所有鼠标信息。

40、本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

41、为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1