CN106155647A - 一种键鼠操作回放的方法和装置 - Google Patents

一种键鼠操作回放的方法和装置 Download PDF

Info

Publication number
CN106155647A
CN106155647A CN201510149198.4A CN201510149198A CN106155647A CN 106155647 A CN106155647 A CN 106155647A CN 201510149198 A CN201510149198 A CN 201510149198A CN 106155647 A CN106155647 A CN 106155647A
Authority
CN
China
Prior art keywords
event
relieving
button
current event
current
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
Application number
CN201510149198.4A
Other languages
English (en)
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 Qihoo Technology Co Ltd
Qizhi Software Beijing 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 CN201510149198.4A priority Critical patent/CN106155647A/zh
Publication of CN106155647A publication Critical patent/CN106155647A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Input From Keyboards Or The Like (AREA)

Abstract

本发明公开了一种键鼠操作回放的方法和装置,涉及互联网技术领域,能够解决键鼠操作回放所导致的Windows异常的问题。本发明的方法,包括:获取待执行的键鼠脚本;顺序执行所述键鼠脚本中的各个事件;检测当前事件之后是否存在与所述当前事件对应的放开事件;若所述当前事件之后不存在与所述当前事件对应的放开事件,则在所述当前事件之后添加所述放开事件。本发明适用于Windows环境下键鼠操作回放的过程中。

Description

一种键鼠操作回放的方法和装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种键鼠操作回放的方法和装置。
背景技术
键盘和鼠标均为用户设备的输入设备,当用户玩游戏或者进行编辑文档等窗口操作时,往往需要对某个操作过程进行重复执行,例如,重复点击鼠标左键,或者以一定的顺序重复点击键盘中的不同方向键。为了简化用户的重复操作,现有技术提出了一种模拟用户操作键盘和鼠标的方式。在该方式中,用户设备可以在用户第一次执行键鼠操作时,对用户的键鼠操作进行录制,获得键鼠脚本,并在后续对键鼠脚本进行回放,实现同一操作的自动执行。
现有技术中,脚本是以事件为单位进行录制的,除了鼠标移动和鼠标滚轮的滚动以外,键盘或鼠标上任何一个按键的操作,均包含按下与放开两个动作。在进行脚本录制时,用户设备将一个动作作为一个事件进行记录,与此对应的,针对某个按键的一次操作就包含了按下和放开两个事件。例如录制时用户触发了键盘上的按键W,则用户设备会在脚本中记录一个按键W按下的事件和一个按键W放开的事件,相应地,在脚本回放时,用户设备也会顺序执行按键W的按下事件以及按键W的放开事件。对于包含104个按键的标准键盘而言,键盘所涉及的事件数量为208个,再加上分别对应鼠标左键、滚轮及右键的按下和放开事件,涉及键鼠按键的事件数量一共有214种。
目前,现有技术中存在两种脚本回放模式,即后台模式和托管模式,这两种回放模式都是基于执行脚本事件的方式实现的键鼠操作回放。实际应用中,不论采用何种模式进行回放,在回放过程中用户插入的手动操作都会影响事件的回放(包括针对目的窗口的操作以及针对其他窗口的操作)。例如用户的手动操作会干扰到按键W的放开事件的执行,其放开的效果并未真正作用到目的窗口中。这种情况下,按键W虽然被模拟按下,但是缺失了按键W的放开效果,在回放结束后按键W仍持续处于按下的状态,由此导致目的窗口或者其他窗口发生卡死的现象,使得用户无法对目的窗口或其他窗口进行打开、关闭、拖动等操作,进而出现Windows异常。
发明内容
有鉴于此,本发明提供的键鼠操作回放的方法和装置,能够解决键鼠操作回放所导致的Windows异常的问题。
为解决上述技术问题,一方面,本发明提出了一种键鼠操作回放的方法,所述方法包括:
获取待执行的键鼠脚本;
顺序执行所述键鼠脚本中的各个事件;
检测当前事件之后是否存在与所述当前事件对应的放开事件;
若所述当前事件之后不存在与所述当前事件对应的放开事件,则在所述当前事件之后添加所述放开事件。
另一方面,本发明提出了一种键鼠操作回放的装置,所述装置包括:
获取单元,用于获取待执行的键鼠脚本;
执行单元,用于顺序执行所述获取单元获取的所述键鼠脚本中的各个事件;
检测单元,用于检测当前事件之后是否存在与所述当前事件对应的放开事件;
添加单元,用于当所述检测单元检测到所述当前事件之后不存在与所述当前事件对应的放开事件时,在所述当前事件之后添加所述放开事件。
借由上述技术方案,本发明提供的键鼠操作回放的方法和装置,能够在获取待执行的键鼠脚本后,顺序执行键鼠脚本中的各个事件,并且检测当前事件之后有无与其对应的放开事件,若无,则将放开事件添加在当前事件之后。与现有技术中直接对获取的待执行键鼠脚本中的事件依次执行相比,本发明能够使得键鼠脚本中的按下事件之后一定存在放开事件,从而保证了键鼠脚本的正常回放,进而避免了因缺少放开事件而造成Windows异常的现象。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了一种键鼠操作回放的方法的流程图;
图2示出了键鼠脚本的示意图;
图3示出了一种键鼠操作回放的装置的结构示意图;
图4示出了另一种键鼠操作回放的装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种键鼠操作回放的方法,如图1所示,该方法包括:
101、获取待执行的键鼠脚本。
其中,键鼠脚本以事件的形式顺序记录用户对键盘或鼠标的每一次操作,并且记录相邻操作之间的时间间隔,形成一个线性集合。
例如,图2为一个键鼠脚本示意图,该键鼠脚本中依次记录按键A按下事件、100ms、按键A放开事件、5s、按键C按下事件、80ms、按键C放开事件、10s、鼠标左键按下事件、90ms、鼠标左键放开事件、8s、按键回车按下事件,说明用户在整个操作过程中,先对按键A进行了操作,5s后,对按键C进行了操作,10s后,对鼠标左键进行了操作,8s后,又对按键回车进行了操作。上述时间数值表示相邻事件之间的时间间隔,本实施例中的数值仅为举例说明,不作为对实际应用的具体限定。
需要说明的是,由于时间间隔并不会对键鼠脚本的回放或者Windows系统产生异常,所以在以下步骤中仅针对键鼠脚本中的事件进行检测。
102、顺序执行键鼠脚本中的各个事件。
由于键鼠脚本中的各个事件是按照时间顺序进行记录的,所以在执行键鼠脚本时,需要按照顺序执行键鼠脚本中的各个事件。
示例性的,终端在执行图2中的键鼠脚本时,按照事件记录的顺序依次执行按键A按下事件、按键A放开事件、按键C按下事件、按键C放开事件、鼠标左键按下事件、鼠标左键放开事件和按键回车按下事件。
实际应用中,由于后台模式和托管模式均基于执行脚本事件的方式实现的键鼠操作回放,所以本实施例中键鼠脚本的回放既适用于后台模式,又适用于托管模式。
103、检测当前事件之后是否存在与当前事件对应的放开事件。
终端从执行键鼠脚本中的第一个事件起,会检测当前事件之后是否存在与当前事件对应的放开事件。其中,对当前事件之后的事件进行检测时,该检测范围可以为仅针对与当前事件相邻的下一事件进行检测,也可以在与当前事件相邻的若干事件中进行检测,也可以在当前事件之后的所有事件内进行检测。
示例性的,键鼠脚本中记录的事件依次为按键A按下事件、按键A放开事件、按键X按下事件、按键X放开事件、按键M按下事件、鼠标左键按下事件、鼠标左键放开事件、按键回车按下事件。若当前事件为按键X按下事件,则终端可以仅检测按键X放开事件是否为与按键X按下事件对应的放开事件,也可以在与按键X按下事件相邻的若干事件内进行检测,如在与按键X按下事件相邻的连续3个事件内进行检测,即在按键X放开事件、按键M按下事件、鼠标左键按下事件中进行检测,也可以在按键X按下事件之后的所有事件内进行检测,即在按键X放开事件、按键M按下事件、鼠标左键按下事件、鼠标左键放开事件、按键回车按下事件中进行检测。
需要说明的是,实际应用中,当前事件可能是按下事件也可能是放开事件。当当前事件为按下事件时,对应该当前事件的放开事件为与当前事件操作相反的事件;而当当前事件为放开事件时,对应该当前事件的放开事件为该当前事件本身。例如,若当前事件为按键O按下事件,则对应该当前事件的放开事件为按键O放开事件;若当前事件为按键O放开事件,则对应该当前事件的放开事件为按键O放开事件。
实际应用中,终端每执行一个按下事件和与其对应的放开事件,就可以完成一次按键的模拟操作,而当在放开事件之后重复添加相同的放开事件时,对按键的模拟操作并无影响,因为本方案中,只要保证一个按键在按下之后一定可以放开,即按下事件之后一定存在放开事件,而无需限制放开事件的数量。因此本实施例在添加放开事件时,无需对当前事件的事件类型进行判断。
104、若当前事件之后不存在与当前事件对应的放开事件,则在当前事件之后添加放开事件。
若检测到当前事件之后不存在与当前事件对应的放开事件,则说明键鼠脚本中缺少与当前事件对应的放开事件,从而有可能对键鼠脚本的回放产生影响,甚至导致Windows出现异常,因此应该在当前事件之后添加对应的放开事件以保证终端正常运行。
由于无论对应当前事件的放开事件处于哪个位置,只要位于当前事件之后,都不会对回放结果或系统产生影响,所以在当前事件之后添加放开事件的具体实现方式可以为在当前事件与下一事件之间添加放开事件,可以为在当前事件之后的所有事件中,任意两个事件之间添加放开事件,还可以为在当前事件之后的所有事件之后添加放开事件,本实施例不对放开事件的具体添加位置进行限定。
示例性的,若键鼠脚本中记录的事件为按键S按下事件、按键S放开事件、按键G按下事件、按键P按下事件、按键P放开事件、鼠标右键按下事件、鼠标右键放开事件,则当前事件为按键G按下事件时,在该当前事件之后并未检测到与当前事件对应的放开事件,所以可以在按键G按下事件与按键P按下事件之间添加按键G放开事件,也可以在按键P按下事件、按键P放开事件、鼠标右键按下事件、鼠标右键放开事件中任意两个事件之间添加按键G放开事件(如在按键P放开事件和鼠标右键按下事件之间添加按键G放开事件),也可以在最后一个事件鼠标右键放开事件之后添加按键G放开事件。
此外,若检测到当前事件之后存在与当前事件对应的放开事件,则无需添加对应当前事件的放开事件,并且对于下一事件,则继续进行步骤103、步骤104所述的操作。
除了对放开事件的添加位置不作限定以外,本实施例同样不对放开事件的添加时机进行限制。在本实施例中,在检测到当前事件之后没有对应的放开事件时,终端可以在执行当前事件之前对放开事件进行添加,也可以在执行当前事件之后、下一事件之前进行添加,还可以是在键鼠脚本中所有的事件都执行完毕后再进行统一添加,本实施例对添加放开事件的时机不作限制。
需要说明的是,对于检测之后立即添加放开事件的方式,当当前事件为上述添加的放开事件时,直接执行该当前事件,而并不对其进行上述流程的检测与判断。其中,区分添加的事件与键鼠脚本中已有的事件的方式可以有多种,例如:可以对添加的事件进行标记,当执行到添加的事件时,终端可以检测到该事件携带有添加标记,则直接执行该事件。
本发明实施例提供的键鼠操作回放的方法,能够在获取待执行的键鼠脚本后,顺序执行键鼠脚本中的各个事件,并且检测当前事件之后有无与其对应的放开事件,若无,则将放开事件添加在当前事件之后。与现有技术中直接对获取的待执行键鼠脚本中的事件依次执行相比,本发明能够使得键鼠脚本中的按下事件之后一定存在放开事件,从而保证了键鼠脚本的正常回放,进而避免了因缺少放开事件而造成Windows异常的现象。
进一步的,作为对上述方法实施例的细化与扩展,由于在步骤103中并未对当前事件进行限制,即无论当前事件是按下事件,还是放开事件,均对该当前事件之后的事件进行检测,因此为了避免当前事件为放开事件时,也对其后的事件进行检测,而降低键鼠脚本执行的速度,本实施例采用如下改进方式:
在检测当前事件之后是否存在与当前事件对应的放开事件前,先检测当前事件是否为按下事件。若当前事件为按下事件,则再继续检测当前事件之后是否存在放开事件;若当前事件为放开事件,则不再对当前事件之后的事件进行检测,而直接执行当前事件,并在执行下一事件之前,继续对下一事件进行按下事件与放开事件的判断,进而继续判断是否对该下一事件之后的事件进行检测。
进一步的,在上述步骤103中提到,终端检测当前事件之后是否存在与当前事件对应的放开事件时,可以采用多种实现方式,下面对以下两种实现方式进行介绍:
方式一:检测当前事件之后的所有事件中是否存在放开事件。
终端遍历当前事件之后的所有事件,查看是否存在对应当前事件的放开事件。这种对于当前事件之后的所有事件进行遍历检测,可以防止事件查找遗漏现象的产生。
在实际应用中,除了长按某一按键外,用户对键盘或者鼠标的点击往往是瞬间按下、瞬间放开,因此键鼠脚本中录制的用户对键盘或鼠标的操作,往往是一个按键按下事件与该按键的放开事件相邻记录的,所以为了减少检测时间,可以采用以下方式二进行检测。
方式二:检测与当前事件相邻的下一事件是否为放开事件。
终端检测与当前事件相邻的下一事件是否为放开事件,若不是,则在当前事件之后添加对应当前事件的放开事件,若是,则执行该当前事件。
进一步的,当检测到当前事件之后并不存在对应当前事件的放开事件时,需要在当前事件之后添加该放开事件,由于每个事件和与其对应的放开事件往往是相邻记录的,所以可以在当前事件之后、与当前事件相邻的下一事件之前,添加放开事件。
在实际应用中,用户常常会长按键盘或鼠标上的按键,而对于长按按键的情况,终端会在键鼠脚本中记录多个连续相同的按下事件,例如,用户长按按键回车x秒时,计算机会记录m个连续相同的按键回车按下事件。因此为了避免终端对连续相同的多个事件一一进行检测,并多次添加相同的放开事件,而造成键鼠脚本回放缓慢,可以采用如下方式进行放开事件的添加:
检测与当前事件相邻的连续至少一个事件是否均与当前事件相同,若与当前事件相邻的连续至少一个事件均与当前事件相同,则在连续至少一个事件中的最后一个事件之后,添加放开事件,若与当前事件相邻的下一事件与当前事件不同,则在当前事件之后添加对应当前事件的放开事件。
示例性的,键鼠脚本中记录的事件依次为按键Q按下事件、按键Q放开事件、按键T按下事件、按键T按下事件、按键T按下事件、按键N按下事件、按键N放开事件,若当前事件为第一个按键T按下事件,则终端检测到在当前事件之后并不存在与当前事件对应的放开事件后,继续检测与当前事件相邻的连续至少一个事件是否均与当前事件相同,检测结果为有两个事件均与当前事件相同,因此在当前事件之后的连续两个按键T按下事件的第二个事件之后添加按键T放开事件。
进一步的,由于在与当前事件均相同且相邻的连续至少一个事件之后,添加了放开事件,所以当前事件之后、与当前事件相邻的连续至少一个事件之后均存在放开事件,这几个事件对键鼠脚本的回放以及Windows系统均无影响,因此在添加了放开事件后,可以直接顺序执行当前事件以及与当前事件相邻的连续至少一个事件,而无需对与当前事件相邻的连续至少一个事件进行步骤103、步骤104的操作。
可选的,由于对于键鼠脚本中的每一个按下事件,只要按下事件之后存在对应的放开事件,就不影响键鼠脚本的回放结果,所以为了将键鼠脚本中已有的事件与添加的放开事件区分开,可以在键鼠脚本中的所有事件之后添加放开事件,使得键鼠脚本中的最后一个事件之前均为已有的、未做添加的事件,使得键鼠脚本中的最后一个事件之后均为添加的事件。
在本实施例的一种实现方式中,终端可以在脚本回放的过程中,仅判断当前事件之后是否存在对应的放开事件,但不立即对放开事件进行添加。在检测并执行完键鼠脚本中最后一个事件后,终端在键鼠脚本最后统一添加对应各个按下事件的放开事件。具体的,终端顺序执行键鼠脚本中的各个事件,在执行每一个事件的过程中,检测当前事件之后是否存在对应的放开事件,并对不存在放开事件的当前事件添加标记。当将键鼠脚本中的所有事件执行完后,终端在最后一个事件之后顺序添加放开事件,并顺序执行添加的放开事件。
示例性的,键鼠脚本中的事件依次为按键A按下事件、按键A放开事件、按键W按下事件、按键R按下事件、按键R放开事件、按键P按下事件、按键B按下事件、按键B放开事件、按键Y按下事件,终端顺序执行上述事件,在执行过程中,依次检测到按键W按下事件、按键P按下事件、按键Y按下事件不存在对应的放开事件,因此依次对按键W按下事件、按键P按下事件、按键Y按下事件添加标记。在最后一个事件按键Y按下事件执行完后,终端在该事件之后,按照按下事件出现的先后顺序,顺序添加按键W放开事件、按键P放开事件和按键Y放开事件,并顺序执行添加的放开事件。
在这种添加的事件均位于键鼠脚本中的已有事件之后的方式下,对于相邻或者不相邻的若干相同的事件均不存在对应的放开事件时,只要该若干事件中的第一个事件添加了对应的放开事件,那么其他事件之后便均有对应的放开事件,因此,避免了重复添加放开事件的情况。
进一步的,在实际应用中,用户常常需要使用一些组合键来完成必要的操作,如用户按下按键Ctrl后不放开,再按按键C,完成复制的操作,而这个复制操作在计算机中依次记录了按键Ctrl按下事件、按键C按下事件,在按键C按下事件之后才记录按键Ctrl放开事件和按键C放开事件,因此当检测到按键Ctrl按下事件之后不存在按键Ctrl放开事件时,在按键Ctrl按下事件与按键C按下事件之间添加按键Ctrl放开事件,则会使得复制的功能失效,因此为了进一步完善键鼠脚本,使其在避免产生Windows异常的基础上,保证键鼠脚本回放结果不变,可以对步骤104做如下改进:
S1、若当前事件之后不存在与当前事件对应的放开事件,则检测当前事件是否为事件组合中的事件。
其中,事件组合由触发组合键所产生的多个事件组成,事件组合包括按键Ctrl事件、按键Alt事件、按键Shift事件、按键Fn事件,由于组合键是由按键Ctrl、按键Alt、按键Shift、按键Fn等特殊按键与键盘上的其他字母等普通按键组成的,所以事件组合中还包括字母按键等其他按键的对应事件。
S2、若当前事件为事件组合中的事件,则在事件组合中的最后一个事件之后,添加对应当前事件的放开事件。
当当前事件为事件组合中的事件时,将放开事件添加在事件组合中的最后一个事件之后,可以保证该事件组合触发的组合键的特殊功能不被破坏。
此外,若当前事件不是事件组合中的事件,则在当前事件之后添加对应当前事件的放开事件。
示例性的,键鼠脚本中记录的事件依次为按键S按下事件、按键S放开事件、按键Ctrl按下事件、按键X按下事件、按键X放开事件、按键M按下事件、按键回车按下事件、按键回车放开事件,若当前事件为按键Ctrl按下事件,则可以检测到在按键Ctrl按下事件之后并不存在按键Ctrl放开事件,而按键Ctrl与按键X又为组合键,事件组合中的事件有按键Ctrl按下事件、按键X按下事件、按键X放开事件,因此为避免破坏组合键按键Ctrl与按键X组合产生的剪切功能,终端在事件组合中的最后一个事件(即按键X放开事件)之后添加按键Ctrl放开事件;若当前事件为按键M按下事件,则可以检测到按键M按下事件之后不存在按键M放开事件,而按键M按下事件不是事件组合中的事件,所以在按键M按下事件之后添加按键M放开事件。
进一步的,在实际应用中,用户在使用组合键时,往往对后按下的按键先放开,对先按下的事件后放开,例如,用户使用按键Ctrl、按键C实现复制功能时,往往是先按下按键Ctrl,在按住按键Ctrl的过程中,再按下按键C;而在放开按键时,往往是先放开按键C,再放开按键Ctrl。因此为了与用户使用按键的顺序一致,对上述步骤S2做如下改进:
若当前事件为事件组合中的事件,则继续检测当前事件之后的事件组合中的事件之后是否存在对应的放开事件。若不存在,则在事件组合中的最后一个事件之后,按照事件组合中事件的顺序反向添加放开事件;若存在,则在事件组合中的最后一个事件之后,添加对应当前事件的放开事件。
例如,键鼠脚本中的事件依次为按键Ctrl按下事件、按键C按下事件、按键E按下事件、按键E放开事件、按键T按下事件、按键T放开事件,则在执行按键Ctrl按下事件前,检测到按键Ctrl按下事件之后不存在对应的放开事件,并且按键Ctrl按下事件为事件组合中的事件,则继续检测事件组合中的按键C按下事件之后是否存在对应的放开事件。检测结果为按键C按下事件之后不存在对应的放开事件,因此在按键C按下事件之后,依次添加按键C放开事件、按键Ctrl放开事件。
进一步的,作为对上述各实施例的实现,本发明实施例还提供了一种键鼠操作回放的装置,如图3所示,该装置包括:获取单元21、执行单元22、检测单元23和添加单元24。其中,
获取单元21,用于获取待执行的键鼠脚本;
执行单元22,用于顺序执行获取单元21获取的键鼠脚本中的各个事件;
检测单元23,用于检测当前事件之后是否存在与当前事件对应的放开事件;
添加单元24,用于当检测单元23检测到当前事件之后不存在与当前事件对应的放开事件时,在当前事件之后添加放开事件。
进一步的,如图4所示,检测单元23,包括:
第一检测模块231,用于检测当前事件是否为按下事件;
第一检测模块231,还用于当当前事件为按下事件时,检测当前事件之后是否存在放开事件。
第二检测模块232,用于检测当前事件之后的所有事件中是否存在放开事件。
第三检测模块233,用于检测与当前事件相邻的下一事件是否为放开事件。
进一步的,如图4所示,添加单元24,包括:
第一添加模块241,用于在当前事件之后、与当前事件相邻的下一事件之前,添加放开事件。
第一检测模块242,用于检测与当前事件相邻的连续至少一个事件是否均与当前事件相同;
第二添加模块243,用于当第一检测模块242检测到与当前事件相邻的连续至少一个事件均与当前事件相同时,在连续至少一个事件中的最后一个事件之后,添加放开事件。
进一步的,第三添加模块244,用于在所有事件之后添加放开事件。
进一步的,第二检测模块245,用于检测当前事件是否为事件组合中的事件,事件组合由触发组合键所产生的多个事件组成;
第四添加模块246,用于当第二检测模块245检测到当前事件为事件组合中的事件时,在事件组合中的最后一个事件之后,添加对应当前事件的放开事件。
进一步的,第二检测模块245检测的事件组合中的事件包括:
按键Ctrl事件、按键Alt事件、按键Shift事件、按键Fn事件。
本发明实施例提供的键鼠操作回放的装置,能够在获取待执行的键鼠脚本后,顺序执行键鼠脚本中的各个事件,并且检测当前事件之后有无与其对应的放开事件,若无,则将放开事件添加在当前事件之后。与现有技术中直接对获取的待执行键鼠脚本中的事件依次执行相比,本发明能够使得键鼠脚本中的按下事件之后一定存在放开事件,从而保证了键鼠脚本的正常回放,进而避免了因缺少放开事件而造成Windows异常的现象。
本发明实施例公开了:
A1、一种键鼠操作回放的方法,所述方法包括:
获取待执行的键鼠脚本;
顺序执行所述键鼠脚本中的各个事件;
检测当前事件之后是否存在与所述当前事件对应的放开事件;
若所述当前事件之后不存在与所述当前事件对应的放开事件,则在所述当前事件之后添加所述放开事件。
A2、根据A1所述的方法,所述检测当前事件之后是否存在与所述当前事件对应的放开事件,包括:
检测所述当前事件是否为按下事件;
若所述当前事件为按下事件,则检测所述当前事件之后是否存在所述放开事件。
A3、根据A1所述的方法,所述检测当前事件之后是否存在与所述当前事件对应的放开事件,包括:
检测所述当前事件之后的所有事件中是否存在所述放开事件。
A4、根据A1所述的方法,所述检测当前事件之后是否存在与所述当前事件对应的放开事件,包括:
检测与所述当前事件相邻的下一事件是否为所述放开事件。
A5、根据A1所述的方法,所述在所述当前事件之后添加所述放开事件,包括:
在所述当前事件之后、与所述当前事件相邻的下一事件之前,添加所述放开事件。
A6、根据A1所述的方法,所述在所述当前事件之后添加所述放开事件,包括:
检测与所述当前事件相邻的连续至少一个事件是否均与所述当前事件相同;
若与所述当前事件相邻的连续至少一个事件均与所述当前事件相同,则在所述连续至少一个事件中的最后一个事件之后,添加所述放开事件。
A7、根据A1所述的方法,所述在所述当前事件之后添加所述放开事件,包括:
在所有事件之后添加所述放开事件。
A8、根据A1所述的方法,所述在所述当前事件之后添加所述放开事件,包括:
检测所述当前事件是否为事件组合中的事件,所述事件组合由触发组合键所产生的多个事件组成;
若所述当前事件为事件组合中的事件,则在所述事件组合中的最后一个事件之后,添加对应所述当前事件的放开事件。
A9、根据A8所述的方法,所述事件组合中的事件包括:
按键Ctrl事件、按键Alt事件、按键Shift事件、按键Fn事件。
B10、一种键鼠操作回放的装置,所述装置包括:
获取单元,用于获取待执行的键鼠脚本;
执行单元,用于顺序执行所述获取单元获取的所述键鼠脚本中的各个事件;
检测单元,用于检测当前事件之后是否存在与所述当前事件对应的放开事件;
添加单元,用于当所述检测单元检测到所述当前事件之后不存在与所述当前事件对应的放开事件时,在所述当前事件之后添加所述放开事件。
B11、根据B10所述的装置,所述检测单元,包括:
第一检测模块,用于检测所述当前事件是否为按下事件;
所述第一检测模块,还用于当所述当前事件为按下事件时,检测所述当前事件之后是否存在所述放开事件。
B12、根据B10所述的装置,所述检测单元,包括:
第二检测模块,用于检测所述当前事件之后的所有事件中是否存在所述放开事件。
B13、根据B10所述的装置,所述检测单元,包括:
第三检测模块,用于检测与所述当前事件相邻的下一事件是否为所述放开事件。
B14、根据B10所述的装置,所述添加单元,包括:
第一添加模块,用于在所述当前事件之后、与所述当前事件相邻的下一事件之前,添加所述放开事件。
B15、根据B10所述的装置,所述添加单元,包括:
第一检测模块,用于检测与所述当前事件相邻的连续至少一个事件是否均与所述当前事件相同;
第二添加模块,用于当所述第一检测模块检测到与所述当前事件相邻的连续至少一个事件均与所述当前事件相同时,在所述连续至少一个事件中的最后一个事件之后,添加所述放开事件。
B16、根据B10所述的装置,所述添加单元,包括:
第三添加模块,用于在所有事件之后添加所述放开事件。
B17、根据B10所述的装置,所述添加单元,包括:
第二检测模块,用于检测所述当前事件是否为事件组合中的事件,所述事件组合由触发组合键所产生的多个事件组成;
第四添加模块,用于当所述第二检测模块检测到所述当前事件为事件组合中的事件时,在所述事件组合中的最后一个事件之后,添加对应所述当前事件的放开事件。
B18、根据B17所述的装置,所述第二检测模块检测的所述事件组合中的事件包括:
按键Ctrl事件、按键Alt事件、按键Shift事件、按键Fn事件。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种网络通讯的方法、装置及系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种键鼠操作回放的方法,其特征在于,所述方法包括:
获取待执行的键鼠脚本;
顺序执行所述键鼠脚本中的各个事件;
检测当前事件之后是否存在与所述当前事件对应的放开事件;
若所述当前事件之后不存在与所述当前事件对应的放开事件,则在所述当前事件之后添加所述放开事件。
2.根据权利要求1所述的方法,其特征在于,所述检测当前事件之后是否存在与所述当前事件对应的放开事件,包括:
检测所述当前事件是否为按下事件;
若所述当前事件为按下事件,则检测所述当前事件之后是否存在所述放开事件。
3.根据权利要求1所述的方法,其特征在于,所述检测当前事件之后是否存在与所述当前事件对应的放开事件,包括:
检测所述当前事件之后的所有事件中是否存在所述放开事件。
4.根据权利要求1所述的方法,其特征在于,所述检测当前事件之后是否存在与所述当前事件对应的放开事件,包括:
检测与所述当前事件相邻的下一事件是否为所述放开事件。
5.根据权利要求1所述的方法,其特征在于,所述在所述当前事件之后添加所述放开事件,包括:
在所述当前事件之后、与所述当前事件相邻的下一事件之前,添加所述放开事件。
6.根据权利要求1所述的方法,其特征在于,所述在所述当前事件之后添加所述放开事件,包括:
检测与所述当前事件相邻的连续至少一个事件是否均与所述当前事件相同;
若与所述当前事件相邻的连续至少一个事件均与所述当前事件相同,则在所述连续至少一个事件中的最后一个事件之后,添加所述放开事件。
7.根据权利要求1所述的方法,其特征在于,所述在所述当前事件之后添加所述放开事件,包括:
在所有事件之后添加所述放开事件。
8.根据权利要求1所述的方法,其特征在于,所述在所述当前事件之后添加所述放开事件,包括:
检测所述当前事件是否为事件组合中的事件,所述事件组合由触发组合键所产生的多个事件组成;
若所述当前事件为事件组合中的事件,则在所述事件组合中的最后一个事件之后,添加对应所述当前事件的放开事件。
9.根据权利要求8所述的方法,其特征在于,所述事件组合中的事件包括:
按键Ctrl事件、按键Alt事件、按键Shift事件、按键Fn事件。
10.一种键鼠操作回放的装置,其特征在于,所述装置包括:
获取单元,用于获取待执行的键鼠脚本;
执行单元,用于顺序执行所述获取单元获取的所述键鼠脚本中的各个事件;
检测单元,用于检测当前事件之后是否存在与所述当前事件对应的放开事件;
添加单元,用于当所述检测单元检测到所述当前事件之后不存在与所述当前事件对应的放开事件时,在所述当前事件之后添加所述放开事件。
CN201510149198.4A 2015-03-31 2015-03-31 一种键鼠操作回放的方法和装置 Pending CN106155647A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510149198.4A CN106155647A (zh) 2015-03-31 2015-03-31 一种键鼠操作回放的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510149198.4A CN106155647A (zh) 2015-03-31 2015-03-31 一种键鼠操作回放的方法和装置

Publications (1)

Publication Number Publication Date
CN106155647A true CN106155647A (zh) 2016-11-23

Family

ID=57338095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510149198.4A Pending CN106155647A (zh) 2015-03-31 2015-03-31 一种键鼠操作回放的方法和装置

Country Status (1)

Country Link
CN (1) CN106155647A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255280A1 (en) * 2003-06-12 2004-12-16 Shih-Li Wen System and method for executing composite commands with consecutive single keystrokes
CN1692333A (zh) * 2002-10-03 2005-11-02 松下电器产业株式会社 键控事件控制设备
CN101256444A (zh) * 2007-02-28 2008-09-03 欧蜀平 一种对源自用户按键动作的信息流进行处理和转换的方法
CN102073590A (zh) * 2011-01-11 2011-05-25 百度在线网络技术(北京)有限公司 一种基于事件模拟的用户界面测试方法及装置
CN103425775A (zh) * 2013-08-14 2013-12-04 北京网秦天下科技有限公司 用于根据与网页相关的事件集合来确定相应处理的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1692333A (zh) * 2002-10-03 2005-11-02 松下电器产业株式会社 键控事件控制设备
US20040255280A1 (en) * 2003-06-12 2004-12-16 Shih-Li Wen System and method for executing composite commands with consecutive single keystrokes
CN101256444A (zh) * 2007-02-28 2008-09-03 欧蜀平 一种对源自用户按键动作的信息流进行处理和转换的方法
CN102073590A (zh) * 2011-01-11 2011-05-25 百度在线网络技术(北京)有限公司 一种基于事件模拟的用户界面测试方法及装置
CN103425775A (zh) * 2013-08-14 2013-12-04 北京网秦天下科技有限公司 用于根据与网页相关的事件集合来确定相应处理的方法和装置

Similar Documents

Publication Publication Date Title
CN106095804B (zh) 一种视频片段的处理方法、定位方法及终端
CN104268006B (zh) 键鼠脚本的回放方法及装置
CN103744576B (zh) 一种用于实现移动终端的操作界面的方法及系统
DE112016000841T5 (de) Verfolgungsassistenzvorrichtung, verfolgungsassistenzsystem und verfolgungsassistenzverfahren
CN106681711A (zh) 一种分屏模式下的内容分享方法及移动终端
CN105872675A (zh) 截取视频动画的方法及装置
CN112394861B (zh) 页面跳转方法、装置、存储介质及电子装置
CN105740154A (zh) 一种网页游戏测试脚本生成方法及装置
ATE528883T1 (de) Endgerät, verfahren und computerprogrammprodukt zur wechselwirkung mit einer physischen einheit
CN106445271A (zh) 在终端中快速共享内容的方法和设备
CN105930828A (zh) 表情分类标识的控制方法及装置
CN109725959A (zh) 页面控件的响应方法、显示设备及计算机可读存储介质
CN104850300A (zh) 梯形图程序制作装置
JP5402935B2 (ja) Gui評価システム、gui評価方法およびgui評価用プログラム
CN106598454A (zh) 多任务显示的控制方法、装置及移动终端
McInnes et al. Detecting shifts in diversity limits from molecular phylogenies: what can we know?
CN106155647A (zh) 一种键鼠操作回放的方法和装置
CN104915244A (zh) 键鼠脚本回放的方法及装置
CN111368425B (zh) 一种利用框图工具进行接口关系分析的方法和装置
CN104915243B (zh) 键鼠脚本回放的方法及装置
CN105912467A (zh) 一种性能测试方法及装置
CN106155886A (zh) 一种键鼠脚本处理的方法和装置
CN106201258A (zh) 一种信息处理方法及电子设备
CN109660875A (zh) 一种弹幕显示时间确定方法、终端和计算机可读存储介质
CN109359042B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20161123

RJ01 Rejection of invention patent application after publication