CN104915243A - 键鼠脚本回放的方法及装置 - Google Patents

键鼠脚本回放的方法及装置 Download PDF

Info

Publication number
CN104915243A
CN104915243A CN201510375482.3A CN201510375482A CN104915243A CN 104915243 A CN104915243 A CN 104915243A CN 201510375482 A CN201510375482 A CN 201510375482A CN 104915243 A CN104915243 A CN 104915243A
Authority
CN
China
Prior art keywords
key mouse
operational order
event
mouse event
coordinate position
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.)
Granted
Application number
CN201510375482.3A
Other languages
English (en)
Other versions
CN104915243B (zh
Inventor
葛山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Hongxiang Technical Service Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510375482.3A priority Critical patent/CN104915243B/zh
Publication of CN104915243A publication Critical patent/CN104915243A/zh
Application granted granted Critical
Publication of CN104915243B publication Critical patent/CN104915243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种键鼠脚本回放的方法及装置,涉及互联网技术领域,主要目的在于解决托管模式下用户的无关操作导致键鼠脚本回放出现错误的问题。本发明的主要技术方案包括:在托管模式下,当执行完当前键鼠事件后,将当前键鼠事件中的坐标信息记录到第一缓存中;若在执行下一键鼠事件前检测到底层触发的键鼠操作指令,则执行键鼠操作指令;截获即将执行的下一键鼠事件,并从第一缓存中获取上一键鼠事件的坐标信息;将操作焦点从当前的坐标位置移动到坐标信息对应的坐标位置上;基于移动后的坐标位置,执行下一键鼠事件。本发明主要用于Windows环境下键鼠脚本回放的过程中。

Description

键鼠脚本回放的方法及装置
技术领域
本发明涉及互联网技术领域,特别是涉及一种键鼠脚本回放的方法及装置。
背景技术
用户通常在计算机上执行某些任务的过程中会重复进行一系列点击键盘鼠标(简称“键鼠”)的操作,例如在游戏中通过键鼠重复点击目标对象完成任务。大量的重复点击键鼠操作是一个机械执行的过程,如果通过用户人为进行键鼠点击不仅造成用户的操作疲劳,而且还容易使键鼠点击出现错误。为了解放用户的操作,提高键鼠点击的准确性,现有技术中提供了一种方法,即对用户点击的键鼠操作进行脚本录制,得到记录有需要重复执行的一系列点击键鼠操作的键鼠脚本。在执行相关任务的过程中,只需要对相关的键鼠脚本进行回放即可代替用户的手动操作完成任务。
发明人在执行上述方法时,发现现有的键鼠脚本回放模式还存在一定的缺陷。对于托管模式,在执行两个键鼠事件之间的时间间隔中,用户可以插入手动操作,这些手动操作会影响上一键鼠事件的执行结果,并且下一键鼠事件是以该手动操作结果为基础继续执行的,因此会导致脚本回放的结果出现错误。下面以回放键鼠脚本进行账号输入的过程为例对这种缺陷进行说明。如图1所示,在屏幕桌面上,账号登录界面作为执行键鼠脚本的目的窗口,在账号输入框中输入账号abcd#的过程中,当输入完a、b、c后,在c与下一个要输入的字符d之间的时间间隔内,用户将操作焦点移动到账号登录界面密码输入框内,则在托管模式下键鼠脚本的执行会以操作焦点当前的位置继续进行账号的输入,使得在密码的输入框内继续输入字符d#。由于托管模式下仅着眼于操作焦点的焦点位置,因此,当用户手动将操作焦点移动到密码输入框时,键鼠脚本会基于当前操作焦点的位置继续输入账号,导致键鼠脚本回放发生错误。
发明内容
有鉴于此,本发明提供的一种键鼠脚本回放的方法及装置,主要目的在于解决托管模式下用户的无关操作导致键鼠脚本回放出现错误的问题。
依据本发明一个方面,提供了一种键鼠脚本回放的方法,所述方法包括:
在托管模式下,当执行完当前键鼠事件后,将所述当前键鼠事件中的坐标信息记录到第一缓存中,所述坐标信息用于描述所述当前键鼠事件对应的操作焦点的坐标位置;
若在执行下一键鼠事件前检测到底层触发的键鼠操作指令,则执行所述键鼠操作指令;
截获即将执行的所述下一键鼠事件,并从所述第一缓存中获取上一键鼠事件的所述坐标信息;
将操作焦点从当前的坐标位置移动到所述坐标信息对应的坐标位置上;
基于移动后的坐标位置,执行所述下一键鼠事件。
依据本发明另一个方面,提供了一种键鼠脚本回放的装置,所述装置包括:
第一记录单元,用于在托管模式下,当执行完当前键鼠事件后,将所述当前键鼠事件中的坐标信息记录到第一缓存中,所述坐标信息用于描述所述当前键鼠事件对应的操作焦点的坐标位置;
第一执行单元,用于当在执行下一键鼠事件前检测到底层触发的键鼠操作指令时,执行所述键鼠操作指令;
截获单元,用于截获即将执行的所述下一键鼠事件;
第一获取单元,用于从所述第一记录单元中的所述第一缓存中获取上一键鼠事件的所述坐标信息;
移动单元,用于将操作焦点从当前的坐标位置移动到所述坐标信息对应的坐标位置上;
第二执行单元,用于基于所述移动单元移动后的坐标位置,执行所述下一键鼠事件。
借由上述技术方案,本发明提供键鼠脚本回放的方法及装置,在托管模式回放键鼠脚本过程中,当执行完当前键鼠事件后,将该当前事件中的坐标信息被记录到第一缓存中,执行在下一键鼠事件前若检测到的底层触发的键鼠操作指令,截获即将执行的下一键鼠事件,并从第一缓存中获取上一键鼠事件的坐标信息,将操作焦点从当前的坐标位置移动到坐标信息对应的坐标位置上,基于移动后的坐标位置,执行下一键鼠事件。由于托管模式仅着眼于操作焦点的焦点位置,在执行完当前键鼠事件后,将此刻操作焦点的坐标信息记录到第一缓存中,本发明允许在键鼠事件的时间间隔内插入底层触发的键鼠操作指令,但在执行下一键鼠事件时,需将该键鼠操作指令所产生的操作结果进行撤销,并将操作焦点移动到第一缓存所记录的坐标位置上,在实现回放键鼠脚本的连续性的同时,还能够避免底层触发的键鼠操作指令等无关操作对键鼠脚本回放造成的干扰。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了现有技术中在账号登录界面中执行键鼠脚本回放的示意图;
图2示出了本发明实施例提供的一种键鼠脚本回放的方法的流程图;
图3A示出了本发明实施例提供的键鼠操作指令对应的操作信息为删除操作内容的示意图;
图3B示出了本发明实施例提供的键鼠操作指令对应的操作信息为增加操作内容的示意图;
图3C示出了本发明实施例提供的键鼠操作指令对应的操作信息为替换操作内容的示意图;
图3D示出了本发明实施例提供的键鼠操作指令对应的操作信息为对目的窗口之外的其他窗口的操作内容的示意图;
图4示出了本发明实施例提供的一种键鼠脚本回放的装置的组成框图;
图5示出了本发明实施例提供的另一种键鼠脚本回放的装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种键鼠脚本回放的方法,如图2所示,该方法包括:
201、在托管模式下,当执行完当前键鼠事件后,将当前键鼠事件中的坐标信息记录到第一缓存中。
在首次进行键鼠操作时,对执行的键鼠操作以键鼠事件为单位进行键鼠脚本的录制,获得键鼠脚本后,由计算机对键鼠脚本进行回放,模拟此前执行的键鼠操作。其中,除了鼠标移动和鼠标滚轮外,键盘或者鼠标的按下、放开均为一个独立的键鼠事件。
在托管模式下进行键鼠脚本回放的过程中,基于托管模式仅着眼于操作焦点的焦点位置进行执行键鼠事件的特点,当用户在相邻的键鼠事件之间手动插入键鼠事件以外的操作,使操作焦点移出键鼠事件所在的焦点位置后,造成执行键鼠脚本回放时出现错误。因此,为了防止键鼠脚本的在回放过程中出现错误,当执行完当前键鼠事件后,需要将当前键鼠事件中的坐标信息记录到第一缓存中,所述坐标位置用于描述当前键鼠事件对应的操作焦点的坐标位置。
需要说明的是,键鼠脚本中记录的每个键鼠事件均以一串字节的形式存储于终端,即每个键鼠事件占用一个或者多个连续字节的存储空间。每串字节携带的信息包括:事件类型、操作焦点的坐标。当执行完当前键鼠事件时,获取该键鼠事件对应的坐标信息,并将该坐标信息记录到第一缓存中,以便后续当有用户插入手动操作时,将操作焦点的坐标信息与第一缓存记录的坐标信息进行比对。其中,事件类型包括:键盘按键按下事件、键盘按键放开事件、鼠标移动事件、鼠标滚轮滚动事件、鼠标按键按下事件和鼠标按键放开事件。例如,一个事件为按键A按下事件,则该事件的事件类型为键盘按键的按键A按下事件,操作焦点的坐标为(100,300),可知用户在终端坐标为(100,300)处,按下了按键A。
202、若在执行下一键鼠事件前检测到底层触发的键鼠操作指令,则执行键鼠操作指令。
本发明实施例中,在托管模式下键鼠脚本的回放过程中,由于相邻鼠标事件之间存在一定的时间间隔,并且在该时间间隔内用户通过键盘或者鼠标插入的操作不会对键鼠事件的执行造成干扰,因此,在相邻键鼠事件的时间间隔内,允许用户插入手动操作。当在执行下一键鼠事件之前检测到底层触发的键鼠操作指令,则执行键鼠操作指令,但在达到执行下一键鼠事件的时刻时,需要执行步骤203。其中,底层触发的键鼠操作指令包括通过鼠标或者通过键盘触发的键鼠操作指令,而本发明实施例对所述键鼠操作指令的具体内容不进行限定。
203、截获即将执行的下一键鼠事件,并从第一缓存中获取上一键鼠事件的坐标信息。
由于底层触发的键鼠操作指令影响上一键鼠事件的执行结果,并且下一键鼠事件是以该键鼠操作指令的操作结果为基础继续执行下一键鼠事件,因此在下一键鼠事件进行执行之前,将该下一键鼠事件进行截获,防止由于键鼠操作指令的执行而导致键鼠脚本回放的结果出现错误。对即将执行的下一键鼠事件进行截获,以判断底层触发的键鼠操作指令控制的操作焦点的坐标信息是否与步骤201中第一缓存中记录的坐标信息相同。
在本发明实施例的实际操作过程中,需要在一定的时机截获即将执行的键鼠脚本事件。本发明实施例可以采用但不局限于以下的方式实现在一定的时机截获即将执行的键鼠脚本事件,例如,当当前的键鼠脚本事件执行完毕后,立即截获下一个键鼠脚本事件;或者,当当前的键鼠脚本事件执行完毕后,假设当前键鼠脚本事件与下一个键鼠脚本事件的时间间隔为1秒,则可以在执行下一个键鼠脚本事件执行前的400毫秒内,截获键鼠脚本事件。具体的,本发明实施例对截获即将执行的键鼠脚本事件的时机不进行限定。
204、将操作焦点从当前的坐标位置移动到坐标信息对应的坐标位置上。
步骤202在执行键鼠操作指令时,当即将执行下一键鼠事件的时刻上,该键鼠操作指令所控制的操作焦点可能位于步骤201中第一缓存所记录的坐标位置上,也可能不位于步骤201中第一缓存所记录的坐标位置上。因此,在即将执行下一键鼠事件时,需获取所述键鼠操作指令所控制的操作焦点的坐标信息,将操作焦点的坐标信息与第一缓存记录的坐标信息进行比对,若比对的结果不一致,则将操作焦点从当前的坐标位置移动到坐标信息对应的坐标位置上;若比对的结果一致,则基于当前操作焦点当前的坐标位置执行下一键鼠事件,其目的是在于,防止底层触发的键鼠操作指令对键鼠脚本回放的结果造成干扰。
205、基于移动后的坐标位置,执行下一键鼠事件。
当底层触发的键鼠操作指令所控制的操作焦点移出第一缓存记录的坐标位置后,将操作焦点从当前的坐标位置移动到坐标信息对应的坐标位置上,基于移动后的坐标位置,执行下一所述键鼠事件。
本发明实施例提供键鼠脚本回放的方法,在托管模式回放键鼠脚本过程中,当执行完当前键鼠事件后,将该当前事件中的坐标信息被记录到第一缓存中,执行在下一键鼠事件前若检测到的底层触发的键鼠操作指令,截获即将执行的下一键鼠事件,并从第一缓存中获取上一键鼠事件的坐标信息,将操作焦点从当前的坐标位置移动到坐标信息对应的坐标位置上,基于移动后的坐标位置,执行下一键鼠事件。由于托管模式仅着眼于操作焦点的焦点位置,在执行完当前键鼠事件后,将此刻操作焦点的坐标信息记录到第一缓存中,本发明实施例允许在键鼠事件的时间间隔内插入底层触发的键鼠操作指令,但在执行下一键鼠事件时,需将该键鼠操作指令所产生的操作结果进行撤销,并将操作焦点移动到第一缓存所记录的坐标位置上,在实现回放键鼠脚本的连续性的同时,还能够避免底层触发的键鼠操作指令等无关操作对键鼠脚本回放造成的干扰。
进一步的,作为对上述步骤的细化和扩展,步骤202中除了若在执行下一键鼠事件前检测到底层触发的键鼠操作指令,执行键鼠操作指令外,还包括:若在执行下一键鼠事件前检测到底层触发的键鼠操作指令,将所述键鼠操作指令对应的操作信息记录到第二缓存中,其中,键鼠操作指令对应的操作信息包括:在鼠标事件的时间间隔内,对上一键鼠事件的操作内容进行增加、删除或者替换,或者对目的窗口之外的其他窗口通过键鼠操作指令进行操作等等。示例性的,如图3A所示,图3A示出了本发明实施例提供的键鼠操作指令对应的操作信息为删除操作内容的示意图,假设,键鼠脚本正在图3A中所示的目的窗口中执行键鼠事件,其中账号为abcd#,密码为1234,在账号输入的对话框内输入abc后,在字符c与字符d之间的时间间隔内,插入通过鼠标选中字符b、c,并通过键盘将选中的字符b、c进行删除的键鼠操作指令;如图3B所示,图3B示出了本发明实施例提供的键鼠操作指令对应的操作信息为增加操作内容的示意图,在账号输入的对话框内输入ab后,在字符b与字符c之间的时间间隔内,通过底层触发的键鼠操作指令,将操作焦点移动到账号密码输入框内,并执行输入567的键鼠操作指令;如图3C所示,图3C示出了本发明实施例提供的键鼠操作指令对应的操作信息为替换操作内容的示意图,在账号输入的对话框内输入abcd后,在执行下一个键鼠事件之前,通过底层触发的键鼠操作指令,对字符c、d进行了替换,将账号输入框中的内容替换为abCD;如图3D所示,图3D示出了本发明实施例提供的键鼠操作指令对应的操作信息为对目的窗口之外的其他窗口的操作内容的示意图,在账号输入的对话框内输入abc后,在字符c与字符d之间的时间间隔内,通过底层触发的键鼠操作指令,将鼠标指针移动到其他窗口进行操作,点击其他窗口的“新闻”按钮,进入下一级界面。以上仅为示例性的举例,本发明实施例对底层触发的键鼠操作指令的具体内容不进行限定。
进一步的,为了防止底层触发的键鼠操作指令的操作内容对键鼠脚本的执行造成干扰,在基于移动后的坐标位置,执行下一键鼠事件之前,从第二缓存中获取操作信息,并根据操作信息撤销执行键鼠操作指令所产生的操作结果。其中,当键鼠操作指令产生的操作结果为增加操作内容时,删除增加的操作内容;当键鼠操作指令产生的操作结果为删除操作指令时,恢复删除的操作内容。其中,所述键鼠操作指令的操作内容请参考图3A至图3D所示,本发明实施例再次不再进行赘述。
进一步的,在执行键鼠操作指令之后,将该键鼠操作指令与下一键鼠事件进行比对,若比对结果一致,则保留执行键鼠脚本操作指令所产生的操作结果,并取消执行下一键鼠事件;若比对结果不一致,则继续执行步骤203至步骤205。需要说明的是,由于每个键鼠事件都是独立的,本发明实施例中所述的取消执行下一键鼠事件是指:取消与键鼠操作指令所产生的操作结果相同的、独立的下一键鼠事件,不包括取消下一键鼠事件以后的所有键鼠事件。
为了更好的理解上述的将该键鼠操作指令与下一键鼠事件进行比对,若比对结果一致,则保留执行键鼠脚本操作指令所产生的操作结果,并取消执行下一键鼠事件,以下提供一个场景。在目的窗口中,执行完当前键鼠事件1后的操作焦点位于A点,其中A点的坐标为(230,150),而下一键鼠事件2的操作内容为从A点移动到B点,其中B点的坐标为(280,165),在当前键鼠事件1与下一键鼠事件2的时间间隔内,用户从执行完键鼠事件1的操作焦点出(即A点),移动到B点,此时,正处于下一键鼠事件2进行执行的时刻上,比较键鼠操作指令和下一键鼠事件可知,它们存在完全一致的操作内容,因此,取消执行下一键鼠事件2。本发明实施例中,若键鼠操作指令的操作内容与下一键鼠事件的操作内容完全相同,保留执行键鼠脚本操作指令所产生的操作结果,无需对该操作结果进行撤销,提高了键鼠脚本回放的速度;同时,取消对下一键鼠事件的执行,能够降低计算机处理资源的占用。
将该键鼠操作指令与下一键鼠事件进行比对,需要首先键鼠操作指令所控制的操作焦点位置的坐标信息。发明实施例在实际应用中,底层触发的键鼠操作指令的操作类型包括鼠标操作和键盘操作,对应的,对鼠标操作的操作焦点为鼠标指针,对键盘操作的操作焦点为键盘光标。由于底层触发的键鼠操作指令存在不同的操作类型,因此针对不同的操作,判断键鼠操作指令具体针对的窗口也会不同,即判断键鼠操作指令所控制的操作焦点位置的坐标信息的方式也会有不同。
当操作焦点为鼠标指针时,获取操作焦点的焦点位置其实是获取鼠标指针的坐标。在Windows系统中,系统会发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows系统发送一个消息给应用程序。Windows消息本事是作为一个记录传递给应用程序的,这个记录(一般在C/C++/汇编中称为“结构体”)中包含了消息的类型以及其他信息。对于移动鼠标所产生的消息来说,这个记录中包含了鼠标光标当前的坐标。因此,作为一个可选的实施方式,当用户对鼠标进行了操作时,可以利用Windows消息处理机制从Windows消息的结构体信息中获取鼠标指针的坐标。
当操作焦点为键盘光标时,获取操作焦点的焦点位置其实是获取键盘光标的坐标。在Windows系统中,窗口就是通过消息与操作系统互动的,窗口不能直接与使用者交流,使用者移动键盘光标、点击键盘等都是通过操作系统与窗口通信的,窗口信息处理函数极为重要,没有它窗口便不能工作。因此,作为一个可选的实施方式,在实际应用中可以通过调用系统函数从窗口消息中获取坐标。示例性的,可以调用Windows系统中提供的GetGUIThreadInfo函数从当前窗口的窗口信息中获取键盘光标的坐标。
在通过上述不同的实施方式获取到鼠标指针和键盘光标的坐标信息后,还需要确定鼠标、键盘的操作信息。基于获取到的鼠标、键盘的坐标信息及操作信息,即可实现键鼠操作指令与下一键鼠事件的比对。
需要说明的是,本发明实施例提供的键鼠脚本回放的方法,在通过托管模式进行回放的过程中,在相邻键鼠事件的时间间隔内允许用户通过键盘或者鼠标插入手动操作,但是用户插入的操作内容被记录到第二缓存中,其目的在于,当执行下一键鼠事件时,将用户插入的操作内容进行撤销,将操作焦点从当前的坐标位置移动到第一缓存记录的坐标信息对应的坐标位置上以确保键鼠脚本执行结果的准确性。此外,将用户插入的操作内容进行撤销,且将操作焦点从当前的坐标位置移动到第一缓存记录的坐标信息对应的坐标位置上,能够基于第一缓存记录的坐标信息实现键鼠事件的连续性。
进一步的,作为对上述图2所示方法的实现,本发明实施例还提供了一种键鼠脚本回放的装置,如图4所示,该装置包括:
第一记录单元31,用于在托管模式下,当执行完当前键鼠事件后,将所述当前键鼠事件中的坐标信息记录到第一缓存中,所述坐标信息用于描述所述当前键鼠事件对应的操作焦点的坐标位置;
第一执行单元32,用于当在执行下一键鼠事件前检测到底层触发的键鼠操作指令时,执行所述键鼠操作指令;
截获单元33,用于截获即将执行的所述下一键鼠事件;
第一获取单元34,用于从所述第一记录单元31中的所述第一缓存中获取上一键鼠事件的所述坐标信息;
移动单元35,用于将操作焦点从当前的坐标位置移动到所述坐标信息对应的坐标位置上;
第二执行单元36,用于基于所述移动单元35移动后的坐标位置,执行所述下一键鼠事件。
进一步的,如图5所示,所述装置还包括:
第二记录单元37,用于当在执行下一键鼠事件前检测到底层触发的键鼠操作指令时,将所述键鼠操作指令对应的操作信息记录到第二缓存中。
进一步的,如图5所示,所述装置还包括:
第二获取单元38,用于在所述第二执行单元36基于移动后的坐标位置,执行所述下一键鼠事件之前,从所述第二缓存中获取所述操作信息;
撤销单元39,用于根据所述第二获取单元38获取的所述操作信息撤销执行所述键鼠操作指令所产生的操作结果。
进一步的,所述撤销单元39,还用于当所述键鼠操作指令所产生的操作结果为增加操作内容时,删除增加的所述操作内容。
进一步的,所述撤销单元39还用于,当所述键鼠操作指令所产生的操作结果为删除操作内容时,恢复删除的所述操作内容。
进一步的,如图5所示,所述装置还包括:
比对单元310,用于在所述第一执行单元32执行所述键鼠操作指令之后,将所述键鼠操作指令与所述下一键鼠事件进行比对;
操作单元311,用于当所述比对单元310比对结果一致时,保留执行所述键鼠操作指令所产生的操作结果,并取消执行所述下一键鼠事件
进一步的,如图5所示,所述装置还包括:
第三获取单元312,用于在所述移动单元35将操作焦点从当前的坐标位置移动到所述坐标信息对应的坐标位置上之前,获取所述操作焦点当前的坐标信息。
进一步的,如图5所示,所述操作焦点为鼠标指针,所述第三获取单元312包括:
第一获取模块3121,用于获取windows消息中的结构体信息;
第二获取模块3122,用于从所述第一获取模块3121获取的所述结构体信息中获取所述鼠标指针的坐标信息。
进一步的,如图5所示,所述操作焦点为键盘光标,所述第三获取单元312还包括:
第三获取模块3123,用于调用应用程序编程接口API获取活动窗口的窗口信息;
第四获取模块3124,用于从所述第三获取模块3123获取的所述窗口信息中获得所述键盘光标的坐标信息,其中,所述活动窗口为操作焦点当前所在的对象窗口。
本发明实施例提供键鼠脚本回放的装置,在托管模式回放键鼠脚本过程中,当执行完当前键鼠事件后,将该当前事件中的坐标信息被记录到第一缓存中,执行在下一键鼠事件前若检测到的底层触发的键鼠操作指令,截获即将执行的下一键鼠事件,并从第一缓存中获取上一键鼠事件的坐标信息,将操作焦点从当前的坐标位置移动到坐标信息对应的坐标位置上,基于移动后的坐标位置,执行下一键鼠事件。由于托管模式仅着眼于操作焦点的焦点位置,在执行完当前键鼠事件后,将此刻操作焦点的坐标信息记录到第一缓存中,本发明实施例允许在键鼠事件的时间间隔内插入底层触发的键鼠操作指令,但在执行下一键鼠事件时,需将该键鼠操作指令所产生的操作结果进行撤销,并将操作焦点移动到第一缓存所记录的坐标位置上,在实现回放键鼠脚本的连续性的同时,还能够避免底层触发的键鼠操作指令等无关操作对键鼠脚本回放造成的干扰。
本发明实施例公开了:
A1、一种键鼠脚本回放的方法,所述方法包括:
在托管模式下,当执行完当前键鼠事件后,将所述当前键鼠事件中的坐标信息记录到第一缓存中,所述坐标信息用于描述所述当前键鼠事件对应的操作焦点的坐标位置;
若在执行下一键鼠事件前检测到底层触发的键鼠操作指令,则执行所述键鼠操作指令;
截获即将执行的所述下一键鼠事件,并从所述第一缓存中获取上一键鼠事件的所述坐标信息;
将操作焦点从当前的坐标位置移动到所述坐标信息对应的坐标位置上;
基于移动后的坐标位置,执行所述下一键鼠事件。
A2、根据A1所述的方法,所述方法还包括:
若在执行下一键鼠事件前检测到底层触发的键鼠操作指令,则将所述键鼠操作指令对应的操作信息记录到第二缓存中。
A3、根据A2所述的方法,在基于移动后的坐标位置,执行所述下一键鼠事件之前,所述方法还包括:
从所述第二缓存中获取所述操作信息,并根据所述操作信息撤销执行所述键鼠操作指令所产生的操作结果。
A4、根据A3所述的方法,所述根据所述操作信息撤销执行所述键鼠操作指令所产生的操作结果,包括:
若所述键鼠操作指令所产生的操作结果为增加操作内容,则删除增加的所述操作内容。
A5、根据A3所述的方法,所述根据所述操作信息撤销执行所述键鼠操作指令所产生的操作结果,包括:
若所述键鼠操作指令所产生的操作结果为删除操作内容,则恢复删除的所述操作内容。
A6、根据A1所述的方法,在所述执行所述键鼠操作指令之后,所述方法还包括:
将所述键鼠操作指令与所述下一键鼠事件进行比对;
若比对结果一致,则保留执行所述键鼠操作指令所产生的操作结果,并取消执行所述下一键鼠事件。
A7、根据A1所述的方法,在所述将操作焦点从当前的坐标位置移动到所述坐标信息对应的坐标位置上之前,所述方法还包括:
获取所述操作焦点当前的坐标信息。
A8、根据A7所述的方法,所述操作焦点为鼠标指针,所述获取所述操作焦点当前的坐标信息包括:
获取windows消息中的结构体信息;
从所述结构体信息中获取所述鼠标指针的坐标信息。
A9、根据A7所述的方法,所述操作焦点为键盘光标,所述获取所述操作焦点当前的坐标信息包括:
调用应用程序编程接口API获取活动窗口的窗口信息,并从所述窗口信息中获得所述键盘光标的坐标信息,其中,所述活动窗口为操作焦点当前所在的对象窗口。
B10、一种键鼠脚本回放的装置,所述装置包括:
第一记录单元,用于在托管模式下,当执行完当前键鼠事件后,将所述当前键鼠事件中的坐标信息记录到第一缓存中,所述坐标信息用于描述所述当前键鼠事件对应的操作焦点的坐标位置;
第一执行单元,用于当在执行下一键鼠事件前检测到底层触发的键鼠操作指令时,执行所述键鼠操作指令;
截获单元,用于截获即将执行的所述下一键鼠事件;
第一获取单元,用于从所述第一记录单元中的所述第一缓存中获取上一键鼠事件的所述坐标信息;
移动单元,用于将操作焦点从当前的坐标位置移动到所述坐标信息对应的坐标位置上;
第二执行单元,用于基于所述移动单元移动后的坐标位置,执行所述下一键鼠事件。
B11、根据B10所述的装置,所述装置还包括:
第二记录单元,用于当在执行下一键鼠事件前检测到底层触发的键鼠操作指令时,将所述键鼠操作指令对应的操作信息记录到第二缓存中。
B12、根据B11所述的装置,所述装置还包括:
第二获取单元,用于在所述第二执行单元基于移动后的坐标位置,执行所述下一键鼠事件之前,从所述第二缓存中获取所述操作信息;
撤销单元,用于根据所述第二获取单元获取的所述操作信息撤销执行所述键鼠操作指令所产生的操作结果。
B13、根据B12所述的装置,所述撤销单元还用于,当所述键鼠操作指令所产生的操作结果为增加操作内容时,删除增加的所述操作内容。
B14、根据B12所述的装置,所述撤销单元还用于,当所述键鼠操作指令所产生的操作结果为删除操作内容时,恢复删除的所述操作内容。
B15、根据B10所述的装置,所述装置还包括:
比对单元,用于在所述第一执行单元执行所述键鼠操作指令之后,将所述键鼠操作指令与所述下一键鼠事件进行比对;
操作单元,用于当所述比对单元比对结果一致时,保留执行所述键鼠操作指令所产生的操作结果,并取消执行所述下一键鼠事件。
B16、根据B10所述的装置,所述装置还包括:
第三获取单元,用于在所述移动单元将操作焦点从当前的坐标位置移动到所述坐标信息对应的坐标位置上之前,获取所述操作焦点当前的坐标信息。
B17、根据B16所述的装置,所述操作焦点为鼠标指针,所述第三获取单元包括:
第一获取模块,用于获取windows消息中的结构体信息;
第二获取模块,用于从所述第一获取模块获取的所述结构体信息中获取所述鼠标指针的坐标信息。
B18、根据B16所述的装置,所述操作焦点为键盘光标,所述第三获取单元还包括:
第三获取模块,用于调用应用程序编程接口API获取活动窗口的窗口信息;
第四获取模块,用于从所述第三获取模块获取的所述窗口信息中获得所述键盘光标的坐标信息,其中,所述活动窗口为操作焦点当前所在的对象窗口。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种键鼠脚本回放的方法,其特征在于,所述方法包括:
在托管模式下,当执行完当前键鼠事件后,将所述当前键鼠事件中的坐标信息记录到第一缓存中,所述坐标信息用于描述所述当前键鼠事件对应的操作焦点的坐标位置;
若在执行下一键鼠事件前检测到底层触发的键鼠操作指令,则执行所述键鼠操作指令;
截获即将执行的所述下一键鼠事件,并从所述第一缓存中获取上一键鼠事件的所述坐标信息;
将操作焦点从当前的坐标位置移动到所述坐标信息对应的坐标位置上;
基于移动后的坐标位置,执行所述下一键鼠事件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若在执行下一键鼠事件前检测到底层触发的键鼠操作指令,则将所述键鼠操作指令对应的操作信息记录到第二缓存中。
3.根据权利要求2所述的方法,其特征在于,在基于移动后的坐标位置,执行所述下一键鼠事件之前,所述方法还包括:
从所述第二缓存中获取所述操作信息,并根据所述操作信息撤销执行所述键鼠操作指令所产生的操作结果。
4.根据权利要求3所述的方法,其特征在于,所述根据所述操作信息撤销执行所述键鼠操作指令所产生的操作结果,包括:
若所述键鼠操作指令所产生的操作结果为增加操作内容,则删除增加的所述操作内容。
5.根据权利要求3所述的方法,其特征在于,所述根据所述操作信息撤销执行所述键鼠操作指令所产生的操作结果,包括:
若所述键鼠操作指令所产生的操作结果为删除操作内容,则恢复删除的所述操作内容。
6.一种键鼠脚本回放的装置,其特征在于,所述装置包括:
第一记录单元,用于在托管模式下,当执行完当前键鼠事件后,将所述当前键鼠事件中的坐标信息记录到第一缓存中,所述坐标信息用于描述所述当前键鼠事件对应的操作焦点的坐标位置;
第一执行单元,用于当在执行下一键鼠事件前检测到底层触发的键鼠操作指令时,执行所述键鼠操作指令;
截获单元,用于截获即将执行的所述下一键鼠事件;
第一获取单元,用于从所述第一记录单元中的所述第一缓存中获取上一键鼠事件的所述坐标信息;
移动单元,用于将操作焦点从当前的坐标位置移动到所述坐标信息对应的坐标位置上;
第二执行单元,用于基于所述移动单元移动后的坐标位置,执行所述下一键鼠事件。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二记录单元,用于当在执行下一键鼠事件前检测到底层触发的键鼠操作指令时,将所述键鼠操作指令对应的操作信息记录到第二缓存中。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于在所述第二执行单元基于移动后的坐标位置,执行所述下一键鼠事件之前,从所述第二缓存中获取所述操作信息;
撤销单元,用于根据所述第二获取单元获取的所述操作信息撤销执行所述键鼠操作指令所产生的操作结果。
9.根据权利要求8所述的装置,其特征在于,所述撤销单元还用于,当所述键鼠操作指令所产生的操作结果为增加操作内容时,删除增加的所述操作内容。
10.根据权利要求8所述的装置,其特征在于,所述撤销单元还用于,当所述键鼠操作指令所产生的操作结果为删除操作内容时,恢复删除的所述操作内容。
CN201510375482.3A 2015-06-30 2015-06-30 键鼠脚本回放的方法及装置 Active CN104915243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510375482.3A CN104915243B (zh) 2015-06-30 2015-06-30 键鼠脚本回放的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510375482.3A CN104915243B (zh) 2015-06-30 2015-06-30 键鼠脚本回放的方法及装置

Publications (2)

Publication Number Publication Date
CN104915243A true CN104915243A (zh) 2015-09-16
CN104915243B CN104915243B (zh) 2018-08-10

Family

ID=54084324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510375482.3A Active CN104915243B (zh) 2015-06-30 2015-06-30 键鼠脚本回放的方法及装置

Country Status (1)

Country Link
CN (1) CN104915243B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550046A (zh) * 2015-12-11 2016-05-04 北京奇虎科技有限公司 虚拟操控的方法、装置及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493790A (zh) * 2009-02-27 2009-07-29 北京中星微电子有限公司 记录回放系统和记录回放方法
CN102841789A (zh) * 2012-06-29 2012-12-26 北京奇虎科技有限公司 一种对浏览器中的用户操作进行录制和回放的方法和装置
CN103488507A (zh) * 2013-09-18 2014-01-01 北京思特奇信息技术股份有限公司 一种用户行为轨迹回放方法
CN104268006A (zh) * 2014-10-27 2015-01-07 北京奇虎科技有限公司 键鼠脚本的回放方法及装置
CN104301175A (zh) * 2014-09-24 2015-01-21 蓝盾信息安全技术有限公司 一种基于浏览器的web业务系统仿真监控方法
CN104572428A (zh) * 2013-10-16 2015-04-29 陆璐 基于windows操作系统下的复杂控件测试方法
CN104636158A (zh) * 2013-11-14 2015-05-20 博雅网络游戏开发(深圳)有限公司 基于Android操作系统的鼠标指针控制方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101493790A (zh) * 2009-02-27 2009-07-29 北京中星微电子有限公司 记录回放系统和记录回放方法
CN102841789A (zh) * 2012-06-29 2012-12-26 北京奇虎科技有限公司 一种对浏览器中的用户操作进行录制和回放的方法和装置
CN103488507A (zh) * 2013-09-18 2014-01-01 北京思特奇信息技术股份有限公司 一种用户行为轨迹回放方法
CN104572428A (zh) * 2013-10-16 2015-04-29 陆璐 基于windows操作系统下的复杂控件测试方法
CN104636158A (zh) * 2013-11-14 2015-05-20 博雅网络游戏开发(深圳)有限公司 基于Android操作系统的鼠标指针控制方法和装置
CN104301175A (zh) * 2014-09-24 2015-01-21 蓝盾信息安全技术有限公司 一种基于浏览器的web业务系统仿真监控方法
CN104268006A (zh) * 2014-10-27 2015-01-07 北京奇虎科技有限公司 键鼠脚本的回放方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550046A (zh) * 2015-12-11 2016-05-04 北京奇虎科技有限公司 虚拟操控的方法、装置及系统

Also Published As

Publication number Publication date
CN104915243B (zh) 2018-08-10

Similar Documents

Publication Publication Date Title
US20210326446A1 (en) Vulnerability Detection Method, Apparatus, Electronic Device and Storage Medium
US7313661B1 (en) Tool for identifying causes of memory leaks
CN111602114A (zh) 用于在集成开发环境内提供即时通信信道的系统和方法
US9589136B2 (en) Method and device for extracting message format
US20080209390A1 (en) Pluggable model elements
CN102831351B (zh) 一种用于表示计算机图标的安全属性的方法和装置
JP2009506465A5 (zh)
CN103927198A (zh) 一种软件清理方法及装置
US20110029822A1 (en) Tracking of java objects during request processing
Saltaformaggio et al. Screen after Previous Screens:{Spatial-Temporal} Recreation of Android App Displays from Memory Images
KR20140126702A (ko) 관련 문서들에 대한 확장 활성화 기법
CN104572447A (zh) 基于安卓操作系统的业务流程录制-回放方法及系统
CN104063673A (zh) 一种在浏览器中进行信息输入的方法和浏览器装置
CN104915244A (zh) 键鼠脚本回放的方法及装置
US20180203786A1 (en) Performance diagnostics via offline replay
CN105279431A (zh) 一种移动设备中操作信息的记录方法、装置和系统
US10241845B2 (en) Application event tracing
US8769498B2 (en) Warning of register and storage area assignment errors
CN104915243A (zh) 键鼠脚本回放的方法及装置
CN110659295B (zh) 一种基于hawq记录有效数据的方法、装置和介质
CN110045952B (zh) 代码调用方法与装置
CN105335169A (zh) 在智能终端上启动通信的方法及装置
US10235216B1 (en) Modifying system-defined user interface control functionality on a computing device
CN111258588B (zh) 一种用于控制工程软件的脚本执行速度提升方法及装置
CN111221723B (zh) 测试记录生成方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220725

Address after: 300450 No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, Binhai New Area, Tianjin

Patentee after: 3600 Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230718

Address after: 1765, floor 17, floor 15, building 3, No. 10 Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: Beijing Hongxiang Technical Service Co.,Ltd.

Address before: 300450 No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, Binhai New Area, Tianjin

Patentee before: 3600 Technology Group Co.,Ltd.