CN117742700A - 操作自动执行方法、装置、设备、介质和程序产品 - Google Patents
操作自动执行方法、装置、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN117742700A CN117742700A CN202311786654.7A CN202311786654A CN117742700A CN 117742700 A CN117742700 A CN 117742700A CN 202311786654 A CN202311786654 A CN 202311786654A CN 117742700 A CN117742700 A CN 117742700A
- Authority
- CN
- China
- Prior art keywords
- program code
- data
- function
- specified operation
- kernel mode
- 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
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000012544 monitoring process Methods 0.000 claims abstract description 59
- 230000006870 function Effects 0.000 claims description 77
- 238000004590 computer program Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 8
- 238000012905 input function Methods 0.000 claims description 6
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 15
- 230000015654 memory Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000003825 pressing Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000036632 reaction speed Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本公开提供了一种操作自动执行方法,可以应用于人工智能技术领域。该操作自动执行方法包括:响应于从操作系统中内核模式层的接口监听到的指定操作,生成所述指定操作对应的程序代码,所述程序代码基于所述内核模式层针对于所述指定操作生成的监听数据生成;运行所述程序代码,以自动实现所述指定操作所要实现的功能。本公开还提供了一种操作自动执行装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及人工智能领域,更具体地涉及一种操作自动执行方法、装置、设备、介质和程序产品。
背景技术
在日常工作中,经常会做一些重复劳动,比如打开公司某一个OA系统,输入用户名密码,打卡;又比如批改其他人的代码时,需要打开git系统,每次都是点击重复的路径,找到别人提交的代码点击审批通过。大量的重复劳动会使得时间变得非常琐碎,影响工作效率。
在现有技术中,会通过手动编写代码,然后运行相应代码,计算机就会自动执行鼠标及键盘的操作,在现有作业比较复杂的时候,手动编码工作将会变得十分耗时,同时不同场景不同需求下,会有不同的操作方式,给编码工作带来了大量的复杂度。
发明内容
鉴于上述问题,本公开提供了一种操作自动执行方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种操作自动执行方法,包括:响应于从操作系统中内核模式层的接口监听到的指定操作,生成指定操作对应的程序代码,程序代码基于内核模式层针对于指定操作生成的监听数据生成;运行程序代码,以自动实现指定操作所要实现的功能。
根据本公开的实施例,监听数据包括第一监听数据和第二监听数据,第一监听数据表征被监听设备的输入信息,第二监听数据表征被监听设备的位置信息,程序代码包括第一程序代码和第二程序代码,生成指定操作对应的程序代码包括:在第一监听数据和第二监听数据所对应的被监听设备相同的情况下,根据第一监听数据和第二监听数据生成指定操作对应的第一程序代码;在第一监听数据和第二监听数据所对应的被监听设备不同,或不存在第二监听数据的情况下,根据第一监听数据生成指定操作对应的第二程序代码。
根据本公开的实施例,运行程序代码,以自动实现指定操作所要实现的功能包括:运行第一程序代码,以自动实现指定操作所要实现的输入功能和光标移动功能;和/或运行第二程序代码,以实现指定操作要实现的输入功能。
根据本公开的实施例,监听数据包括第三监听数据,第三监听数据用于表征当前监听到的指定操作距离上一次监听到的指定操作的时间间隔,程序代码包括第三程序代码,生成指定操作对应的程序代码还包括:响应于从操作系统中内核模式层的接口监听到的指定操作,根据第三监听数据生成第三程序代码。
根据本公开的实施例,运行程序代码包括:运行第三程序代码,以在实现不同功能的过程间设置时间间隔。
根据本公开的实施例,响应于用户的自定义设置请求,将程序代码拆分为自定义设置请求对应的多个子程序代码;运行程序代码包括:响应于用户的自定义执行请求,运行自定义执行请求对应的至少一个子程序代码。
根据本公开的实施例,启动监听进程,以监听内核模式层的接口;其中,监听进程由监听进程项目文件生成,监听进程项目文件包括第一接口库和第二接口库,第一接口库用于使监听进程可以调用内核模式层中的第一函数,以监听指定操作,第二接口库用于使监听进程可以调用内核模式层中的第二函数,以生成指定操作对应的监听数据。
根据本公开的实施例,被监听设备包括键盘和鼠标。
本公开的第二方面提供了一种操作自动执行装置,包括:生成模块,用于响应于从操作系统中内核模式层的接口监听到的指定操作,生成指定操作对应的程序代码,程序代码基于内核模式层针对于指定操作生成的监听数据生成;运行模块,用于运行程序代码,以自动实现指定操作所要实现的功能。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述操作自动执行方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述操作自动执行方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述操作自动执行方法。
根据本公开的实施例,本公开提供的操作自动执行方法、装置、设备、介质和程序产品至少具有以下有益效果之一:可以实现重复工作的自动化执行,且无需手动编写对应程序代码。通过操作系统中内核模式层的接口直接监听硬件设备的输入,通过内核模式层的监听数据生成实现功能的程序代码,绕开会带来失焦的应用程序层,录制工具无需在屏幕最前端,方便操作。用户也可灵活选择所需自动执行的功能,提高用户体验感。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的操作自动执行的应用场景图;
图2示意性示出了根据本公开实施例的操作自动执行方法的流程图;
图3示意性示出了根据本公开实施例的监听数据存储方式的框图;
图4示意性示出了根据本公开实施例的功能自动实现方法中生成程序代码并运行的流程图;
图5示意性示出了根据本公开另一实施例的功能自动实现方法中生成程序代码并运行流程的框图;
图6示意性示出了根据本公开实施例的另一功能自动实现方法的流程图;
图7示意性示出了根据本公开实施例的功能自动实现装置的结构框图;以及
图8示意性示出了根据本公开实施例的适于实现功能自动实现方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本公开的实施例提供了一种操作自动执行方法,可以用于大量重复操作的自动执行。
图1示意性示出了根据本公开实施例的操作自动执行的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括设备101、102、103、通信链路104和主机105。通信链路104用以在设备101、102、103和主机105之间提供通信链路的介质。通信链路104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用设备101、102、103通过通信链路104与主机105交互,以接收或发送消息等。设备101、102、103上可以安装有各种软硬件操控装置,例如按键、移动杆、运动传感器、扫描仪、触摸屏、数位板、光学传感器、生物识别设备等。
设备101、102、103可以是能够对主机进行操作的各种电子设备,包括但不限于鼠标、键盘、触摸屏、手写笔、手柄、虚拟键盘或动作追踪装置等等。
主机105可以是执行各种服务的计算机,例如对用户利用设备101、102、103操作主机进行系统登录、浏览文件、编写代码或打开页面等。主机可以对接收到的用户操作等数据进行分析等处理,并将用户操作的结果(例如根据用户操作获取或生成的网页、信息、或数据等)反馈到显示屏幕。
需要说明的是,本公开实施例所提供的操作自动执行方法一般可以由主机105执行。相应地,本公开实施例所提供的操作自动执行装置一般可以设置于主机105中。本公开实施例所提供的操作自动执行方法也可以由不同于主机105且能够与设备101、102、103和/或主机105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的操作自动执行装置也可以设置于不同于主机105且能够与设备101、102、103和/或主机105通信的服务器或服务器集群中。
应该理解,图1中的设备、网络和主机的数目仅仅是示意性的。根据实现需要,可以具有任意数目的设备、网络和主机。
以下将基于图1描述的场景,通过图2~图6对公开实施例的操作自动执行方法进行详细描述。
图2示意性示出了根据本公开实施例的操作自动执行方法的流程图。
如图2所示,该实施例的操作自动执行包括操作S210~操作S240,该交易处理方法可以在前述主机中执行。
在操作S210,启动监听进程,以监听内核模式层的接口。
在windows操作系统中,系统架构可以分为用户界面层、应用程序层、系统服务层、内核模式层和硬件层。在传统方法中,如果需要对用户的操作进行录制,一般是在用户界面层、应用程序层和系统服务层中的一个或多个进行对应操作。例如,在Windows操作系统中,系统服务层中的Win32子系统负责管理窗口、消息传递和用户输入。Win32子系统会将输入事件路由具有焦点的窗口。而在应用程序层的应用程序依赖于Java的标准API来处理用户输入,如鼠标点击和键盘输入。当应用程序窗口处于活动状态时,它可以接收输入事件。但当应用程序失去焦点时,它通常无法捕获到这些事件,因为输入事件会被发送到当前具有焦点的窗口。
例如,打开录制程序后,此时的输入事件的焦点是位于录制窗口上,当录制窗口最小化,鼠标打开了另一个文本窗口,那么输入的事件的焦点就会在文本窗口上,系统服务层中的Win32子系统会将输入事件路由到文本窗口上,录制程序就无法获得输入的内容,不能进行录制。
而在本公开实施例中,监听进程是通过windows操作系统中内核模式层来进行监听设备的行为,也即通过内核模式层的接口监听设备的行为。内核模式层与硬件层相连,包括实际的操作系统内核、硬件抽象层(HAL)、设备驱动程序等。内核负责管理内存、进程和线程、文件系统等核心功能。硬件抽象层抽象了硬件的细节,使得内核能够在不同的硬件平台上运行。设备驱动程序则负责控制硬件设备的操作。硬件设备的从硬件层的输入,是通过内核模式层传往系统服务层,在此之前,硬件设备的输入不会被路由管理进行定向分配。
而为了监听进程能够通过内核模式层的接口监听设备的行为,需要在创建监听进程的监听进程项目文件中添加两个库,第一接口库和第二接口库,第一接口库用于使监听进程可以调用内核模式层中的第一函数,以监听指定操作,第二接口库用于使监听进程可以调用内核模式层中的第二函数,以生成指定操作对应的监听数据。具体的,在本公开实时例中,第一接口库为JNA平台库,第二接口库为JNA核心库,监听进程可以通过JNA平台库中的com.sun.jna.platform.win32包中的接口函数和类,来监听内核模式层的接口。
在操作S220,响应于从操作系统中内核模式层的接口监听到的指定操作,生成指定操作对应的程序代码,程序代码基于内核模式层针对于指定操作生成的监听数据生成。
通过监听进程实时监听设备的操作,在监听到指定操作的时候,内核模式层会针对该指定操作生成对应的监听数据。指定操作是指具有实际意义的,能够用于完成某种功能的操作,或用于完成某种功能的多个操作中的一个操作。例如,需要打开屏幕上的“我的文档”文档,那么所有的操作为:将鼠标从初始位置移动到“我的文档”图标位置,鼠标右键点击“我的文档”图标,出现选项框,鼠标左键点击“打开”选项,实现“我的文档”文档的打开。
在上述在整个过程中,会监听到鼠标的移动,捕捉到大量鼠标的坐标数据,在鼠标还未移动到“我的文档”时,此时鼠标的移动操作是没有意义的,并不属于完成打开“我的文档”文档中的有效必须的内容。只有鼠标坐标到达“我的文档”图标时,此时鼠标的坐标才具有意义。而到达图标后,需要点击才能进行下一步的操作。因此,在此例中,指定操作是【鼠标右键点击】以及【鼠标左键点击】两个动作。
而相应的,内核模式层会针对指定操作生成对应的监听数据。监听数据包括第一监听数据和第二监听数据,第一监听数据表征被监听设备的输入信息,第二监听数据表征被监听设备的位置信息。具体的,外部设备的行为动作映射到系统中的表现形式上,可以分为两类,一种是输入信息,例如可以是按钮的按下等,内核模式层针对此类动作行为生成的监听数据为第一监听数据;一种是位置信息,例如可以是鼠标的移动等,此类动作行为生成的监听数据为第二监听数据。
例如,针对上述的【鼠标右键点击】以及【鼠标左键点击】中,生成相应的监听数据“rightClick,x:X1,y:Y1”、“leftClick,x:X2,y:Y2”,其中,leftClick代表鼠标左键,rightClick代表鼠标右键,(X1,Y1)为鼠标右键点击的坐标,也即“我的文档”图标的坐标,(X2,Y2)为鼠标左键点击坐标,也即右键点击“我的文档”后出现的选项框中“打开”选项在屏幕上所在的坐标,那么第一次点击的第一监听数据为rightClick,第二监听数据为x:X1,y:Y1;第一次点击的第一监听数据为leftClick,第二监听数据为x:X2,y:Y2。需要说明的是,在上述实施例中,“鼠标”可以是指操作系统中的任意可移动光标,而不仅仅指硬件鼠标所控制的鼠标光标。
图3示意性示出了根据本公开实施例的监听数据存储方式的框图。
如图3所示,在本公开实施例中,监听到点击动作,于是记录下点击按钮以及点击位置,而此时,生成的监听数据包括第一监听数据和第二监听数据,在实际获取这两个数据时,因为架构、系统以及实际软件的设计的影响,获取顺序可能不定,有可能是先获取第一监听数据再获取第二监听数据,也可能是先获取第二监听数据再获取第一监听数据,也可能同时获取。而对于数据的存储,一般会默认按照获取顺序存储,那么可能造成数据的存储顺序为图3中上半部分所示,第二监听数据(x:X1,y:Y1)存储在第一监听数据(leftClick)之前,那么在后续将其转换为程序代码时,则会变成,先按下按钮,再将光标移动至对应坐标,导致操作出现错误。
介于此种问题,在进行记录时,可以按照操作发生的顺序依次记录,而在需要记录坐标时,则可以将坐标信息记录在按键信息之前。由于系统获取数据的速度,远大于人的反应速度,因此在一个极小阈值的时间段内,系统具有前后顺序的操作可以视为同一时刻发生,在这个极小阈值时间段内,如果有第一监听数据和第二监听数据生成,如图3下半部分所示,则将第二监听数据的数据信息存储在这段时间内产生的监听数据中的首位,也即在内存空间中第二监听数据的地址在第一监听数据之前。这样,相当于视作,这一段极小阈值内发生的操作都位于该坐标下。
然后,生成指定操作对应的程序代码。具体的,根据预设的转换规则,将监听数据转换为程序代码,程序代码可以被人工或系统执行以进行实现相应的操作。程序代码包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言所形成的程序代码。
继续参考图2,在操作S230,运行程序代码,以自动实现指定操作所要实现的功能。例如,监听到的指定操作为【鼠标右键点击】以及【鼠标左键点击】,所对应的功能为打开“我的文档”,那么,根据对两次指定操作的监听数据,生成对应的代码。例如,在生成的程序代码中,代码段A所实现的是在“我的文档”图标处执行【鼠标右键点击】功能,代码段B所实现的是在“打开”选项栏处执行【鼠标左键点击】功能,那么运行该程序代码即可实现打开“我的文档”这一功能。需要说明的是,该程序代码可以被保存,以供技术人员进行相应修改,该程序代码也可设定重复次数,使得系统可以自动按设定的重复次数多次运行该代码,以多次实现指定操作所对应的功能。
图4示意性示出了根据本公开实施例的功能自动实现方法中生成程序代码并运行流程的框图。
如图4所示,程序代码包括第一程序代码和第二程序代码,生成指定操作对应的程序代码包括:在第一监听数据和第二监听数据所对应的被监听设备相同的情况下,根据第一监听数据和第二监听数据生成指定操作对应的第一程序代码。在第一监听数据和第二监听数据所对应的被监听设备不同,或不存在第二监听数据的情况下,根据第一监听数据生成指定操作对应的第二程序代码。
具体的,同一时刻,监听进程生成的监听数据可能不止一个,例如,键盘A按下了按键ctrl,鼠标按下了左键,并且鼠标移动到了(X3,Y3)位置,那么此时对应产生了第一监听数据A:leftClick,第二监听数据B:(x:X3,y:Y3),第一监听数据C:ctrl。此时,生成代码时需要判断第一监听数据和第二监听数据对应的被监听设备是否是同一个,例如,第一监听数据A和第二监听数据B同属于被监听设备鼠标,那么则由第一监听数据A和第二监听数据B生成鼠标的指定操作的第一程序代码a,相应的,第一程序代码a可以实现鼠标从初始位置移动到(X3,Y3)的功能。第一监听数据C和第二监听数据B不属于同一被监听设备,则只根据第一监听数据C生成第二程序代码b,第二程序代码b可以实现键盘按下ctrl键的功能。
这里举出另一例子,以和上述例子形成区别,例如,键盘A按下了ctrl键,鼠标未按键,但鼠标移动到了(X3,Y3)的位置,那么此时生成了第一监听数据C:ctrl,第二监听数据B:(x:X3,y:Y3),那么,则只根据第一监听数据C生成第二程序代码b,第二程序代码b可以实现键盘按下ctrl键的功能。可以看出,第一程序代码和第二程序代码的区别在于,第一程序代码中包含位置信息,可以实现系统中光标的移动等功能。
相应的,生成了第一程序代码,和/或第二程序代码后,运行第一程序代码,以自动实现指定操作所要实现的输入功能和光标移动功能;和/或运行第二程序代码,以实现指定操作要实现的输入功能。
图5示意性示出了根据本公开另一实施例的功能自动实现方法中生成程序代码并运行流程的框图;
在实际操作中,有些时候,某个功能的实现过程中存在等待时间。例如,图5所示,登录服务器系统并下载文件D,那么,需要实现这个功能的动作有,输入登录信息(为简化描述,假设登录信息只输入了字母p),点击登录,等待服务器响应登录成功,选择文件D,点击下载。那么监听到的指定操作为:键盘的按键p被点击,鼠标左键被点击(“登录”按钮位置),鼠标左键被点击(“文件D”位置),鼠标左键被点击(“下载”按钮位置)。这四步对应生成的监听数据假设为监听数据1~4,监听数据1~4对应的程序代码为程序代码1~4。那么如果按照前述的操作S210~S230,形成的程序代码在运行时程序代码2和程序代码3,执行点击“登录”按钮位置的功能和执行点击“文件D”位置的功能,有可能是连续的不间断的。那么,中间没有等待时间的话,可能会出现如图5中虚线框部分,造成页面未出现,但自动执行的程序中已经执行下一步内容,导致自动操作执行失败的情况。
介于此类问题,根据本公开实施例,监听数据包括第三监听数据,第三监听数据用于表征当前监听到的指定操作距离上一次监听到的指定操作的时间间隔,程序代码包括第三程序代码,生成指定操作对应的程序代码还包括:响应于从操作系统中内核模式层的接口监听到的指定操作,根据第三监听数据生成第三程序代码。运行第三程序代码,以在实现不同功能的过程间设置时间间隔。
具体的,如图5中实线框部分,鼠标左键被点击(“登录”按钮位置)这一操作被监听到时,不仅生成第一监听数据:鼠标左键、第二监听数据:“登录”按钮坐标,还同时生成第三监听数据:T1。其中,T1为键盘的按键p被点击到鼠标左键被点击(“登录”按钮位置)的时间间隔。同理生成后续各指定操作所对应的第三监听数据T2、T3。根据第三监听数据生成对应第三程序代码2~4,那么,在运行最终的程序代码时,实现点击“登录”按钮位置的功能后,会等待T1的时间,再实现点击“文件D”位置的功能,以保证登录成功。
根据本公开实施例,为了使得所有动作完成后,再进行等待,在一个预设的极小阈值时间段内,类似于第一监听数据存储在这段时间内产生的监听数据中的首位,第三监听数据存储在这段时间内产生的监听数据中的末尾,也即,内存空间中,第三监听数据的地址在第一监听数据和第二监听数据之后。
图6示意性示出了根据本公开实施例的另一功能自动实现方法的流程图。
如图6所示,功能自动实现方法还可以包括操作S240,操作S230还可以包括操作S231。
在操作S240,响应于用户的自定义设置请求,将程序代码拆分为自定义设置请求对应的多个子程序代码。
在生成程序代码后,用户可以自定义进行设置,例如,可以将已经生成的程序代码按时间段进行拆分成多个子程序代码。又例如,可以将已经生成的程序代码按动作阶段进行拆分成多个子程序代码,具体的,假设程序代码E的功能是自动登录并下载文件D,那么可以将程序代码拆分为实现自动登录功能的子程序代码e1,和实现下载文件D功能的子程序代码e2。
操作S231,响应于用户的自定义执行请求,运行自定义执行请求对应的至少一个子程序代码。具体的,例如操作S240中描述的示例中,程序代码E被拆分为子程序代码e1和子程序代码e2,用户可以自主选择只运行e2,也可以选择运行一次e1后重复多次运行e2,具体如何选择,用户可以根据实际情况决定。
根据本公开实施例,将已经生成的程序代码,根据用户的自定义设置请求,拆分为自定义设置请求所对应的多个子程序代码保存,在运行程序代码时,根据用户的自定义执行请求运行其中至少一个子程序代码,可以使得用户灵活选择自动执行的功能,提高用户体验感。
根据本公开实施例,本公开的方法可以用于电脑上,被监听设备可以是电脑的鼠标和键盘。
本公开所提供的操作自动执行方法可以实现重复工作的自动化执行,且无需手动编写对应程序代码。通过操作系统中内核模式层的接口直接监听硬件设备的输入,通过内核模式层的监听数据生成实现功能的程序代码,绕开会带来失焦的应用程序层,录制工具无需在屏幕最前端,方便操作。
基于上述功能自动实现方法,本公开还提供了一种功能自动实现装置。以下将结合图7对该装置进行详细描述。
图7示意性示出了根据本公开实施例的功能自动实现装置的结构框图。
如图7所示,该实施例的功能自动实现装置700包括生成模块720和运行模块720。
生成模块720用于响应于从操作系统中内核模式层的接口监听到的指定操作,生成指定操作对应的程序代码,程序代码基于内核模式层针对于指定操作生成的监听数据生成;在一实施例中,生成模块720可以用于执行前文描述的操作S220,在此不再赘述。
运行模块720用于运行程序代码,以自动实现指定操作所要实现的功能;在一实施例中运行模块720可以用于执行前文描述的操作S230,在此不再赘述。
根据本公开实施例,功能自动实现装置700还可以包括710启动模块。
启动模块710用于启动监听进程,以监听内核模式层的接口,其中,监听进程由监听进程项目文件生成,监听进程项目文件包括第一接口库和第二接口库,第一接口库用于使监听进程可以调用内核模式层中的第一函数,以监听指定操作,第二接口库用于使监听进程可以调用内核模式层中的第二函数,以生成指定操作对应的监听数据。在一实施例中,生成模块720可以用于执行前文描述的操作S210,在此不再赘述。
根据本公开的实施例,启动模块710、生成模块720和运行模块730中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,启动模块710、生成模块720和运行模块730中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,启动模块710、生成模块720和运行模块730中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现功能自动实现方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理 器801、ROM802以及RAM 803通过总线804彼此相连。处理器80]通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的物品推荐方法。
在该计算机程序被处理器801执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (12)
1.一种功能自动实现方法,包括:
响应于从操作系统中内核模式层的接口监听到的指定操作,生成所述指定操作对应的程序代码,所述程序代码基于所述内核模式层针对于所述指定操作生成的监听数据生成;
运行所述程序代码,以自动实现所述指定操作所要实现的功能。
2.根据权利要求1所述的功能自动实现方法,其中,所述监听数据包括第一监听数据和第二监听数据,所述第一监听数据表征被监听设备的输入信息,所述第二监听数据表征被监听设备的位置信息,所述程序代码包括第一程序代码和第二程序代码,所述生成所述指定操作对应的程序代码包括:
在所述第一监听数据和第二监听数据所对应的被监听设备相同的情况下,根据所述第一监听数据和所述第二监听数据生成所述指定操作对应的所述第一程序代码;
在所述第一监听数据和所述第二监听数据所对应的被监听设备不同,或不存在所述第二监听数据的情况下,根据所述第一监听数据生成所述指定操作对应的所述第二程序代码。
3.根据权利要求2所述的功能自动实现方法,其中,所述运行所述程序代码,以自动实现所述指定操作所要实现的功能包括:
运行所述第一程序代码,以自动实现所述指定操作所要实现的输入功能和光标移动功能;
和/或运行所述第二程序代码,以实现所述指定操作要实现的输入功能。
4.根据权利要求1所述的功能自动实现方法,其中,所述监听数据包括第三监听数据,所述第三监听数据用于表征当前监听到的所述指定操作距离上一次监听到的所述指定操作的时间间隔,所述程序代码包括第三程序代码,所述生成所述指定操作对应的程序代码还包括:
响应于从操作系统中内核模式层的接口监听到的指定操作,根据第三监听数据生成所述第三程序代码。
5.根据权利要求4所述的功能自动实现方法,其中,所述运行所述程序代码包括:
运行所述第三程序代码,以在实现不同所述功能的过程间设置时间间隔。
6.根据权利要求1所述的功能自动实现方法,其中,还包括:
响应于用户的自定义设置请求,将所述程序代码拆分为所述自定义设置请求对应的多个子程序代码;
所述运行所述程序代码包括:
响应于用户的自定义执行请求,运行所述自定义执行请求对应的至少一个子程序代码。
7.根据权利要求1所述的功能自动实现方法,其中,还包括:
启动监听进程,以监听所述内核模式层的接口;
其中,所述监听进程由监听进程项目文件生成,所述监听进程项目文件包括第一接口库和第二接口库,所述第一接口库用于使所述监听进程可以调用所述内核模式层中的第一函数,以监听所述指定操作,所述第二接口库用于使所述监听进程可以调用所述内核模式层中的第二函数,以生成所述指定操作对应的监听数据。
8.根据权利要求2所述的功能自动实现方法,其中,所述被监听设备包括键盘和鼠标。
9.一种功能自动实现装置,包括:
生成模块,用于响应于从操作系统中内核模式层的接口监听到的指定操作,生成所述指定操作对应的程序代码,所述程序代码基于所述内核模式层针对于所述指定操作生成的监听数据生成;
运行模块,用于运行所述程序代码,以自动实现所述指定操作所要实现的功能。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~8中任一项所述的方法。
12.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311786654.7A CN117742700A (zh) | 2023-12-22 | 2023-12-22 | 操作自动执行方法、装置、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311786654.7A CN117742700A (zh) | 2023-12-22 | 2023-12-22 | 操作自动执行方法、装置、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117742700A true CN117742700A (zh) | 2024-03-22 |
Family
ID=90283081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311786654.7A Pending CN117742700A (zh) | 2023-12-22 | 2023-12-22 | 操作自动执行方法、装置、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117742700A (zh) |
-
2023
- 2023-12-22 CN CN202311786654.7A patent/CN117742700A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4420968B2 (ja) | コマンディングのために方法及びコンピュータ可読媒体 | |
US8510720B2 (en) | System landscape trace | |
US9483307B2 (en) | Asynchronous, interactive task workflows | |
US9383903B2 (en) | Systems and methods for providing programmable macros | |
CN106844181B (zh) | 用于记录用户行为的方法、系统及移动终端 | |
US9594663B2 (en) | Apparatus and method for collecting log information from a plurality of servers | |
US10831331B2 (en) | Window control for simultaneously running applications | |
US20230311322A1 (en) | Systems and Methods for Using a Browser to Design Robotic Process Automation (RPA) Robots | |
US20230236910A1 (en) | Systems and Methods for Executing Robotic Process Automation (RPA) Within a Web Browser | |
US20100162207A1 (en) | Behavior-first event programming model | |
CN111586177B (zh) | 集群会话防丢失方法及系统 | |
CN112199135A (zh) | 信息引导方法、装置、电子设备以及存储介质 | |
CN112506854A (zh) | 页面模板文件的存储和页面生成方法、装置、设备及介质 | |
CN114358742A (zh) | 一种工作流执行方法、装置、设备及存储介质 | |
CN113419711A (zh) | 页面引导方法、装置、电子设备及存储介质 | |
CN110704766A (zh) | 基于实时快照的界面渲染优化的方法、装置和电子设备 | |
CN112988138A (zh) | 应用于集成开发环境中的系统和方法 | |
CN112491940A (zh) | 代理服务器的请求转发方法及装置、存储介质及电子设备 | |
CN117742700A (zh) | 操作自动执行方法、装置、设备、介质和程序产品 | |
CN113742104A (zh) | 基于ai的rpa分身功能的生成方法及装置 | |
CN108960433B (zh) | 用于运行机器学习建模过程的方法及系统 | |
CN112965944A (zh) | 可视化的页面还原方法及系统、电子设备及存储介质 | |
JP2012128581A (ja) | 通信コード生成装置および関数利用コンピュータおよび関数公開コンピュータおよびコンピュータシステムおよび通信コード生成方法およびプログラム | |
KR102448263B1 (ko) | 로보틱 자동화 방법과 시스템 및 이를 수행하기 위한 컴퓨팅 장치 | |
CN111176982A (zh) | 一种测试界面生成方法和装置 |
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 |