CN106155648B - 一种键鼠脚本录制的方法及装置 - Google Patents

一种键鼠脚本录制的方法及装置 Download PDF

Info

Publication number
CN106155648B
CN106155648B CN201510150197.1A CN201510150197A CN106155648B CN 106155648 B CN106155648 B CN 106155648B CN 201510150197 A CN201510150197 A CN 201510150197A CN 106155648 B CN106155648 B CN 106155648B
Authority
CN
China
Prior art keywords
event
window
time interval
rudimentary
hook
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.)
Expired - Fee Related
Application number
CN201510150197.1A
Other languages
English (en)
Other versions
CN106155648A (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 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 CN201510150197.1A priority Critical patent/CN106155648B/zh
Publication of CN106155648A publication Critical patent/CN106155648A/zh
Application granted granted Critical
Publication of CN106155648B publication Critical patent/CN106155648B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

本发明公开了一种键鼠脚本录制的方法及装置,涉及互联网技术领域,解决了键鼠脚本录制代价过高的问题。本发明主要的技术方案为:通过低级全局钩子获取输入设备操作的描述信息,将所述描述信息合成为事件,计算相邻两个事件之间的时间间隔,对所述事件及所述时间间隔进行记录,获得键鼠脚本。本发明主要用于游戏的键鼠脚本录制。

Description

一种键鼠脚本录制的方法及装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种键鼠脚本录制的方法及装置。
背景技术
键盘和鼠标是计算机系统中最基本的两种输入设备,并且在windows系统中是通过两种不同的例程来进行输入信号的处理的。在一些特定的环境下(如网络游戏),对鼠标和键盘的操作过程进行脚本录制并回放可以减少用户的重复性劳动,提高使用者的操作效率。
目前对键鼠脚本录制的方式主要是采用通过窗口子类化或者是利用windows API函数挂高级权限的全局钩子来获取并记录键盘鼠标的操作行为的。其中,窗口子类化技术是指在同一进程中,不需要创建新的窗口即可将目标窗口的窗口处理过程(包括窗口相应的一系列windows消息)截取的一种方法,通过截取并记录目标窗口的相关消息(包括鼠标、键盘的消息),进而完成键鼠脚本的录制。然而窗口子类化技术需要寄存于目标窗口进程的内部,通过目标窗口的回调函数获取鼠标、键盘的消息,而要调用回调函数就需要将该函数的DLL(动态链接库)映射到目标窗口进程的地址空间中,即将这个DLL注入到目标窗口进程中,以达到统一进程处理的目的。后一种是利用windows API函数挂高级权限的全局钩子来获取并记录键盘鼠标的操作消息,通过WH_JOURNALRECORD钩子可以一次性的将鼠标、键盘的操作行为记录下来,并可以通过WH_JOURNALPLAYBACK钩子进行回放。但是,采用这种方式首先要保证系统用户的管理权限为高权限,以确保该钩子为高权限启动,而windows系统在vista及以上版本的系统加强了程序启动权限的管理,在用户需要获取高权限时会弹出UAC(User Account Control,用户帐户控制)提示框,在用户确认并许可后才能继续执行。
因此,目前所采用的键鼠脚本录制方式或者是增加了系统的资源开销或者是提高了用户操作的限制条件,使得键鼠脚本录制的代价过高,无法获得广泛的应用。
发明内容
有鉴于此,本发明提供一种键鼠脚本录制的方法及装置,能够解决键鼠脚本录制代价过高的问题。
依据本发明一个方面,提出了一种键鼠脚本录制的方法,该方法包括:
通过低级全局钩子获取输入设备操作的描述信息;
将所述描述信息合成为事件;
计算相邻两个事件之间的时间间隔;
对所述事件及所述时间间隔进行记录,获得键鼠脚本。
依据本发明的另一个方面,提出了一种键鼠脚本录制的装置,该装置包括:
获取单元,用于通过低级全局钩子获取输入设备操作的描述信息;
处理单元,用于将所述获取单元获取的所述描述信息合成为事件;
计算单元,用于计算所述处理单元合成的相邻两个事件之间的时间间隔;
记录单元,用于对所述处理单元合成的所述事件及所述计算单元计算的所述时间间隔进行记录,获得键鼠脚本。
本发明所采用的一种键鼠脚本录制的方法及装置,通过设置低级全局钩子来获取键盘或鼠标操作的描述信息,并将描述信息以事件的形式加以记录,同时再将相邻两个事件之间的时间间隔进行记录,最终将这些事件以及时间间隔以脚本的形式记录下来,获得键鼠脚本。该键鼠脚本由于采用了低级的全局钩子,使得该键鼠脚本在录制键盘、鼠标的操作过程时,即不需要将DLL注入到目标窗口进程中,也不需要用户的高管理权限,大幅降低了录制键鼠脚本的成本,让键鼠脚本的录制更加简便易行。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提出的一种键鼠脚本录制的方法流程图;
图2示出了本发明实施例提出的另一种键鼠脚本录制的方法流程图;
图3示出了本发明实施例提出的一种键鼠脚本录制的装置组成框图;
图4示出了本发明实施例提出的另一种键鼠脚本录制的装置组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种键鼠脚本录制的方法,如图1所示,该方法包括:
101、通过低级全局钩子获取输入设备操作的描述信息。
钩子是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。而全局钩子是指在系统中任意位置中都起作用的钩子。在本实施例中,低级全局钩子是指在系统底层拦截消息的全局钩子,该钩子可以截取操作系统发向任何进程的消息。
在键鼠脚本的录制过程中,所录制的内容是操作鼠标和键盘所产生的描述信息,该描述信息包含有设备标识、按键标识、操作类型、操作焦点的坐标信息等,其中,设备标识用于标识产生描述信息的输入设备,如键盘操作的描述信息、鼠标操作的描述信息等;按键标识是用于区别具体按键,如键盘中的具体按键以及鼠标上的左键、右键等;操作类型用于记录信息的种类,具体包括:按键的按下、放开以及鼠标的移动;操作焦点的坐标信息用来记录操作产生时的输入坐标信息。
102、将描述信息合成为事件。
在本实施例所录制的键鼠脚本中,用于记录键盘或鼠标操作的最小单元称为事件,即在键盘或鼠标的操作中,将操作细分到不能再分解为止。根据鼠标和键盘操作方式的不同,鼠标操作的事件包括有鼠标移动事件,鼠标按键的按下事件,鼠标按键的放开事件,键盘操作的事件分为按键的按下事件与按键的放开事件。举例说明,如鼠标的移动过程,可以看成是光标在多个坐标点之间连续的移动,那么将光标从一个坐标点移动至相邻坐标点的操作就定义为一个鼠标移动事件。再比如,对键盘上某个按键的点击操作,可以分解为该按键的按下操作和放开操作,对应的就是该按键的按下事件和放开事件,而对按键的长按则可以分解成多个连续的该按键的按下事件和一个放开事件的组合。需要说明的是,在鼠标移动或是按键长按时,所分解出的多个鼠标移动事件和多个该按键的按下事件的具体个数,取决于录制该键鼠脚本的采样率,即单位时间内所采集的次数。采样率越高,则操作步骤被分解的就越详细,例如,鼠标移动移动了2s的过程,如果采样率为100次/s,那么系统会对该鼠标的移动操作进行分解,每隔0.01s获取一次鼠标的当前坐标,将从上一次的坐标点移动至当前坐标点的过程记录为一个鼠标移动事件。同理,在键盘长按时,每隔一个采样周期就获取一次该按键的状态,为按下状态时就记录一个按下事件,直到有放开事件为止。需要指出的是,采样率越高所需要的系统处理符合就越大,因此,对采样率的设置应根据具体的硬件条件进行设置,即处理能力越强的录制设备可以相应的提高采样率,以提高键鼠脚本录制的精确度。本实施例对此不做具体限定。
其中,将描述信息合成为事件,是指一个事件中所含有的描述信息的种类。根据上述101中所提到的对描述信息的分类,可以对事件所包含的描述信息内容进行具体说明,此处不再赘述描述信息的具体内容。
103、计算相邻两个事件之间的时间间隔。
在键鼠脚本中,除了记录有用于描述输入设备操作的事件外,还记录有两个相邻事件之间的时间间隔。通过记录时间间隔,可以描述事件与事件之间的关联关系,因此,键鼠脚本就可以按照事件产生的先后顺序依次进行记录。而计算相邻两个事件之间的时间间隔又分成两种:相同事件间的时间间隔和不同事件间的时间间隔。一般两个相邻事件为相同事件的情况只有在长按或是鼠标移动的情况下才能产生,根据102中所述的内容,可以知道这两个相同事件之间的时间间隔为一个采样周期,因此,对于相同的两个相邻事件的时间间隔是不需要计算的。而计算不同的两个相邻事件的时间间隔,则可以通过调用计数函数与频率函数进行计算得出。该时间间隔的精度主要取决于所调用的计数函数与频率函数的精度。
104、对事件及时间间隔进行记录,获得键鼠脚本。
在得到事件和时间间隔后,将事件与时间间隔以产生的时间先后为顺序依次写入到脚本中,就获得了一个键鼠脚本文件,通过对该键鼠脚本文件的执行,可以模拟出键盘和鼠标在录制的时间段内实际的操作过程。
本发明所采用的键鼠脚本录制的方法,通过设置低级全局钩子来获取键盘或鼠标操作的描述信息,并将描述信息以事件的形式加以记录,同时再将相邻两个事件之间的时间间隔进行记录,最终将这些事件以及时间间隔以脚本的形式记录下来,获得键鼠脚本。该键鼠脚本由于采用了低级的全局钩子,使得该键鼠脚本在录制键盘、鼠标的操作过程时,即不需要将DLL注入到目标窗口进程中,也不需要用户的高管理权限,因此,该方法可以大幅降低键鼠脚本录制的成本,让键鼠脚本的录制更加简便易行。
由于键鼠脚本已经较多的应用于网络游戏中,因此,为了更详细的说明本发明提出的键鼠脚本录制的方法,本实施例还提供一种针对网络游戏的键鼠脚本录制的方法,如图2所示,该方法包括:
201、确定录制窗口。
在网络游戏中录制键鼠脚本是为了将用户具体的操作流程保存下来,以供与其他玩家进行切磋交流。而游戏作为一个独立运行的软件程序,有其自己的执行窗口。在本发明实施例中,由于所采用的是低级全局钩子,所获取的键盘或鼠标的操作信息是不区分针对于哪个窗口进行的。因此,为了将多余的键鼠操作过滤掉,即只对指定的窗口内的键鼠操作进行获取,就需要再录制前对录制的目的窗口进行确定。
确定键鼠脚本录制的目的窗口,或称对象窗口,可以是通过设置,将当前顶层的活动窗口确定为对象窗口,经过设置后,录制的窗口将不固定,而是要先判断当前顶层的活动窗口的坐标范围,然后记录发生在该窗口坐标范围内的键鼠操作,当顶层的活动窗口改变时,要重新确定新的顶层活动窗口的坐标范围,并记录在该对象窗口内所执行的键鼠操作,这种方式在网络游戏中,是为了方便记录对多个游戏账号的操作而设置的。此外,还可以设置成只针对一个窗口的操作进行键鼠脚本录制,通过接收窗口选择指令,在该指令中需要携带有对象窗口的窗口句柄,然后根据窗口句柄查找对应的窗口,同时确定窗口的坐标范围,当对该窗口进行键鼠操作时开始进行录制,如此设置后,录制的窗口将固定不变,这样就排除了录制用户对其它窗口的操作,这在录制游戏键鼠脚本时,可以防止由于误操作导致的窗口切换后产生的多余操作被录制的情况,从而提高了键鼠脚本的录制效果,减小了存储空间。对于上述的两种目的窗口设置方式,可以根据不同的情况进行区别设置,本实施例不做具体限定。
在确定了目的窗口后,在该窗口的进程中设置低级全局钩子,用于获取针对该窗口的键鼠操作的描述信息。在本发明实施例中,所采用的低级全局钩子为WH_KEYBOARD_LL和WH_MOUSE_LL,分别用于截取键盘和鼠标操作的描述信息。
202、通过低级全局钩子获取输入设备操作的描述信息。
在设置好上述的低级全局钩子后,当启动键鼠脚本录制后,系统将通过低级键盘钩子,即WH_KEYBOARD_LL,获取键盘操作的描述信息;通过低级鼠标钩子,即WH_MOUSE_LL,获取鼠标操作的描述信息。所获取的描述信息内容在上述101中已做具体说明,此处不再赘述。
需要说明的是,上述的低级键盘钩子与低级鼠标钩子均为全局钩子,在不做限定的情况下可以获取所有当前键盘与鼠标的操作描述信息,因此,需要上述步骤中的将低级全局钩子设置在目的窗口的进程中,用来获取针对该目的窗口的操作描述信息。
203、将描述信息合成为事件。
本步骤同102,详细内容请参考上述102的内容。需要说明的是,由于采用的低级键盘钩子与低级鼠标钩子所获取的描述信息分别是由键盘和鼠标两种输入设备的操作生成的,所以在所合成的事件中,由低级键盘钩子获取的键盘事件与由低级鼠标钩子获取的鼠标事件可能是同时产生的。因此,在以生成时间为顺序进行排列是,有可能会出现两个事件同时发生的情况,为此,可以采用将键盘事件和鼠标事件分别进行顺序排列,防止事件发生重叠而无法处理的现象出现。
204、计算相邻两个事件之间的时间间隔。
键鼠脚本中,由于事件与事件之间的时间间隔非常的短暂,因此就需要高精度的计时器来准确计算两个事件之间的时间间隔,在本实施例中,计算相邻两个事件之间的时间间隔,是通过调用API函数QueryPerformanc eCounter和QueryPerformanceFrequency来实现的,在这组函数中,QueryP erformanceCounter函数可以返回高精确度性能计数器的值,它可以以微妙为单位计时。但是,QueryPerformanceCounter确切的精确计时的最小单位是与系统相关的,所以,必须要查询系统以得到QueryPerformanceCounter返回的嘀哒声的频率。而QueryPerformanceFrequency函数就提供了这个频率值,返回每秒嘀哒声的个数。
并且,通过这组函数所计算的确切时间是从第一次调用QueryPerformanceCounter函数开始的,即第一个事件触发时,调用QueryPerformanceCou nter函数开始计数,第二个事件触发时,再调用QueryPerformanceCounter函数停止计数,计算两者只差再除以QueryPerformanceFrequency函数提供的频率就是这两个事件间的时间间隔。
205、对事件及时间间隔进行记录,获得键鼠脚本。
在对事件以及时间间隔进行记录时,可以按照时间顺序进行线性的记录,获得的键鼠脚本是以事件加时间间隔的组合进行排列的脚本文件。此外,还可以对事件以及时间间隔标记序号,该序号可以表示事件与事件间隔的位置排序,再将标记后的事件与时间间隔进行分类记录,并且同样以时间顺序进行排列,获得键鼠脚本是包括有事件组合和时间间隔组合的脚本文件。例如,标记三个事件为事件1、事件2、事件3,标记这3个事件间的两个间隔为间隔1、间隔2,按照第一种记录的方式所得到的键鼠脚本是事件1-间隔1-事件2-间隔2-事件3的记录方式,而按照第二种方式所得到的脚本文件是事件1-事件2-事件3、间隔1-间隔2的记录方式。后一种记录方式在回放时,只需要将时间间隔插入对应的事件后就可以还原成第一钟方式。
此外,在对时间间隔进行记录时,还可以将计算出来的时间间隔直接用数值的形式加以记录,从而减少记录时间间隔所占用的存储空间。
进一步的,作为对上述方法的实现,本发明实施例提供了一种键鼠脚本录制的装置,该装置可以位于手机、平板电脑、个人电脑(Personal Computer,简称PC)等电子设备中,也可以制作成独立于电子设备外部设备,通过有线或无线的方式与电子设备进行数据交互,或者该装置还可以被设置于服务器侧或服务器内部,用以对上述图1及图2的方法进行实现。具体的,如图3所示,该装置包括:获取单元31、处理单元32、计算单元33以及记录单元34,其中,
获取单元31,用于通过低级全局钩子获取输入设备操作的描述信息;
处理单元32,用于将获取单元31获取的描述信息合成为事件;
计算单元33,用于计算处理单元32合成的相邻两个事件之间的时间间隔;
记录单元34,用于对处理单元32合成的事件及计算单元33计算的时间间隔进行记录,获得键鼠脚本。
进一步的,如图4所示,该装置还包括:
设置单元35,用于在获取单元31通过低级全局钩子获取输入设备操作的描述信息之前,在目的窗口的进程中设置低级全局钩子,目的窗口为进行键鼠脚本录制的对象窗口。
进一步的,如图4所示,该装置还包括:
确定单元36,用于在设置单元35在目的窗口的进程中设置低级全局钩子之前,确定目的窗口。
进一步的,如图4所示,确定单元36,包括:
第一确定模块361,用于将当前顶层的活动窗口确定为目的窗口。
进一步的,如图4所示,确定单元36,包括:
第二确定模块362,用于接收窗口选择指令,查找对应窗口句柄的窗口,并将查找到的窗口确定为目的窗口,窗口选择指令中携带有窗口句柄。
进一步的,获取单元31使用的低级全局钩子为低级鼠标钩子;
如图4所示,获取单元31,包括:
第一获取模块311,用于通过低级鼠标钩子获取鼠标操作的描述信息。
进一步的,获取单元31使用的低级全局钩子为低级键盘钩子;
如图4所示,获取单元31,包括:
第二获取模块312,用于通过低级键盘钩子获取键盘操作的描述信息。
进一步的,计算单元33,用于:调用API函数QueryPerformanceCounter和QueryPerformanceFrequency计算相邻的两个触发事件间的时间间隔。
进一步的,如图4所示,记录单元34,包括:
第一记录模块341,用于按照时间顺序对事件以及时间间隔进行线性记录,获得键鼠脚本。
进一步的,如图4所示,记录单元34,包括:
第二记录模块342,用于对事件以及时间间隔标记序号,并对标记后的事件以及时间间隔进行分类记录,获得键鼠脚本,序号用于表征事件及时间间隔的位置排序。
进一步的,记录单元34,用于:
将时间间隔以数值的形式记录。
本发明所采用的一种键鼠脚本录制的方法及装置,通过设置低级全局钩子来获取键盘或鼠标在目的窗口内操作的描述信息,并将描述信息以事件的形式加以记录,同时再将相邻两个事件之间的时间间隔进行记录,最终将这些事件以及时间间隔以脚本的形式记录下来,获得键鼠脚本。该键鼠脚本由于采用了低级的全局钩子,使得该键鼠脚本在录制键盘、鼠标的操作过程时,即不需要将DLL注入到目标窗口进程中,也不需要用户的高管理权限,并且将钩子挂在目的窗口的进程内,使获取的事件可以过滤掉非目的窗口的键鼠操作的事件,减少了键鼠脚本所占用的存储空间,同时也降低了键鼠脚本录制的成本,让键鼠脚本的录制更加简便易行。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明还公开了下述方案:
A1、一种键鼠脚本录制的方法,所述方法包括:
通过低级全局钩子获取输入设备操作的描述信息;
将所述描述信息合成为事件;
计算相邻两个事件之间的时间间隔;
对所述事件及所述时间间隔进行记录,获得键鼠脚本。
A2、根据A1所述的方法,在所述通过低级全局钩子获取输入设备操作的描述信息之前,所述方法还包括:
在目的窗口的进程中设置所述低级全局钩子,所述目的窗口为进行键鼠脚本录制的对象窗口。
A3、根据A2所述的方法,在所述在目的窗口的进程中设置所述低级全局钩子之前,所述方法进一步包括:
确定所述目的窗口。
A4、根据A3所述的方法,所述确定所述目的窗口,包括:
将当前顶层的活动窗口确定为所述目的窗口。
A5、根据A3所述的方法,所述确定所述目的窗口,包括:
接收窗口选择指令,所述窗口选择指令中携带有窗口句柄;
查找对应所述窗口句柄的窗口,并将查找到的窗口确定为所述目的窗口。
A6、根据A1所述的方法,所述低级全局钩子为低级鼠标钩子;
所述通过低级全局钩子获取输入设备操作的描述信息,包括:
通过所述低级鼠标钩子获取鼠标操作的描述信息。
A7、根据A1所述的方法,所述低级全局钩子为低级键盘钩子;
所述通过低级全局钩子获取输入设备操作的描述信息,包括:
通过所述低级键盘钩子获取键盘操作的描述信息。
A8、根据A1所述的方法,所述计算相邻两个事件之间的时间间隔,包括:
调用API函数QueryPerformanceCounter和QueryPerformanceFrequency计算相邻的两个触发事件间的时间间隔。
A9、根据A1所述的方法,所述对所述事件及所述时间间隔进行记录,获得键鼠脚本,包括:
按照时间顺序对所述事件以及所述时间间隔进行线性记录,获得所述键鼠脚本。
A10、根据A1所述的方法,所述对所述事件及所述时间间隔进行记录,获得键鼠脚本,包括:
对所述事件以及所述时间间隔标记序号,所述序号用于表征所述事件及所述时间间隔的位置排序;
对标记后的所述事件以及所述时间间隔进行分类记录,获得所述键鼠脚本。
A11、根据A9或A10所述的方法,所述对所述时间间隔进行记录,包括:
将所述时间间隔以数值的形式记录。
B12、一种键鼠脚本录制的装置,所述装置包括:
获取单元,用于通过低级全局钩子获取输入设备操作的描述信息;
处理单元,用于将所述获取单元获取的所述描述信息合成为事件;
计算单元,用于计算所述处理单元合成的相邻两个事件之间的时间间隔;
记录单元,用于对所述处理单元合成的所述事件及所述计算单元计算的所述时间间隔进行记录,获得键鼠脚本。
B13、根据B12所述的装置,所述装置还包括:
设置单元,用于在所述获取单元通过低级全局钩子获取输入设备操作的描述信息之前,在目的窗口的进程中设置所述低级全局钩子,所述目的窗口为进行键鼠脚本录制的对象窗口。
B14、根据B13所述的装置,所述装置还包括:
确定单元,用于在所述设置单元在目的窗口的进程中设置所述低级全局钩子之前,确定所述目的窗口。
B15、根据B14所述的装置,所述确定单元,包括:
第一确定模块,用于将当前顶层的活动窗口确定为所述目的窗口。
B16、根据B14所述的装置,所述确定单元,包括:
第二确定模块,用于接收窗口选择指令,查找对应所述窗口句柄的窗口,并将查找到的窗口确定为所述目的窗口,所述窗口选择指令中携带有窗口句柄。
B17、根据B12所述的装置,所述获取单元使用的所述低级全局钩子为低级鼠标钩子;
所述获取单元,包括:
第一获取模块,用于通过所述低级鼠标钩子获取鼠标操作的描述信息。
B18、根据B12所述的装置,所述获取单元使用的所述低级全局钩子为低级键盘钩子;
所述获取单元,包括:
第二获取模块,用于通过所述低级键盘钩子获取键盘操作的描述信息。
B19、根据B12所述的装置,所述计算单元,用于:
调用API函数QueryPerformanceCounter和QueryPerformanceFrequency计算相邻的两个触发事件间的时间间隔。
B20、根据B12所述的装置,所述记录单元,包括:
第一记录模块,用于按照时间顺序对所述事件以及所述时间间隔进行线性记录,获得所述键鼠脚本。
B21、根据B12所述的装置,所述记录单元,包括:
第二记录模块,用于对所述事件以及所述时间间隔标记序号,并对标记后的所述事件以及所述时间间隔进行分类记录,获得所述键鼠脚本,所述序号用于表征所述事件及所述时间间隔的位置排序。
B22、根据B20或B21所述的装置,所述记录单元,用于:
将所述时间间隔以数值的形式记录。

Claims (18)

1.一种键鼠脚本录制的方法,其特征在于,所述方法包括:
通过低级全局钩子获取输入设备操作的描述信息;
将所述描述信息合成为事件;
计算相邻两个事件之间的时间间隔;
对所述事件及所述时间间隔进行记录,获得键鼠脚本;
所述低级全局钩子为低级鼠标钩子;
所述通过低级全局钩子获取输入设备操作的描述信息,包括:
通过所述低级鼠标钩子获取鼠标操作的描述信息;
所述低级全局钩子为低级键盘钩子;
所述通过低级全局钩子获取输入设备操作的描述信息,包括:
通过所述低级键盘钩子获取键盘操作的描述信息;
其中,将所述描述信息合成为事件,包括:将键盘事件和鼠标事件分别进行顺序排列。
2.根据权利要求1所述的方法,其特征在于,在所述通过低级全局钩子获取输入设备操作的描述信息之前,所述方法还包括:
在目的窗口的进程中设置所述低级全局钩子,所述目的窗口为进行键鼠脚本录制的对象窗口。
3.根据权利要求2所述的方法,其特征在于,在所述在目的窗口的进程中设置所述低级全局钩子之前,所述方法进一步包括:
确定所述目的窗口。
4.根据权利要求3所述的方法,其特征在于,所述确定所述目的窗口,包括:
将当前顶层的活动窗口确定为所述目的窗口。
5.根据权利要求3所述的方法,其特征在于,所述确定所述目的窗口,包括:
接收窗口选择指令,所述窗口选择指令中携带有窗口句柄;
查找对应所述窗口句柄的窗口,并将查找到的窗口确定为所述目的窗口。
6.根据权利要求1所述的方法,其特征在于,所述计算相邻两个事件之间的时间间隔,包括:
调用API函数QueryPerformanceCounter和QueryPerformanceFrequency计算相邻的两个触发事件间的时间间隔。
7.根据权利要求1所述的方法,其特征在于,所述对所述事件及所述时间间隔进行记录,获得键鼠脚本,包括:
按照时间顺序对所述事件以及所述时间间隔进行线性记录,获得所述键鼠脚本。
8.根据权利要求1所述的方法,其特征在于,所述对所述事件及所述时间间隔进行记录,获得键鼠脚本,包括:
对所述事件以及所述时间间隔标记序号,所述序号用于表征所述事件及所述时间间隔的位置排序;
对标记后的所述事件以及所述时间间隔进行分类记录,获得所述键鼠脚本。
9.根据权利要求7或8所述的方法,其特征在于,所述对所述时间间隔进行记录,包括:
将所述时间间隔以数值的形式记录。
10.一种键鼠脚本录制的装置,其特征在于,所述装置包括:
获取单元,用于通过低级全局钩子获取输入设备操作的描述信息;所述获取单元,所述低级全局钩子包括低级鼠标钩子和低级键盘钩子;包括:
第一获取模块,用于通过所述低级鼠标钩子获取鼠标操作的描述信息;
第二获取模块,用于通过所述低级键盘钩子获取键盘操作的描述信息;
处理单元,用于将所述获取单元获取的所述描述信息合成为事件;所述处理单元将键盘事件和鼠标事件分别进行顺序排列;
计算单元,用于计算所述处理单元合成的相邻两个事件之间的时间间隔;
记录单元,用于对所述处理单元合成的所述事件及所述计算单元计算的所述时间间隔进行记录,获得键鼠脚本。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
设置单元,用于在所述获取单元通过低级全局钩子获取输入设备操作的描述信息之前,在目的窗口的进程中设置所述低级全局钩子,所述目的窗口为进行键鼠脚本录制的对象窗口。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
确定单元,用于在所述设置单元在目的窗口的进程中设置所述低级全局钩子之前,确定所述目的窗口。
13.根据权利要求12所述的装置,其特征在于,所述确定单元,包括:
第一确定模块,用于将当前顶层的活动窗口确定为所述目的窗口。
14.根据权利要求12所述的装置,其特征在于,所述确定单元,包括:
第二确定模块,用于接收窗口选择指令,查找对应所述窗口句柄的窗口,并将查找到的窗口确定为所述目的窗口,所述窗口选择指令中携带有窗口句柄。
15.根据权利要求10所述的装置,其特征在于,所述计算单元,用于:
调用API函数QueryPerformanceCounter和QueryPerformanceFrequency计算相邻的两个触发事件间的时间间隔。
16.根据权利要求10所述的装置,其特征在于,所述记录单元,包括:
第一记录模块,用于按照时间顺序对所述事件以及所述时间间隔进行线性记录,获得所述键鼠脚本。
17.根据权利要求10所述的装置,其特征在于,所述记录单元,包括:
第二记录模块,用于对所述事件以及所述时间间隔标记序号,并对标记后的所述事件以及所述时间间隔进行分类记录,获得所述键鼠脚本,所述序号用于表征所述事件及所述时间间隔的位置排序。
18.根据权利要求16或17所述的装置,其特征在于,所述记录单元,用于:
将所述时间间隔以数值的形式记录。
CN201510150197.1A 2015-03-31 2015-03-31 一种键鼠脚本录制的方法及装置 Expired - Fee Related CN106155648B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510150197.1A CN106155648B (zh) 2015-03-31 2015-03-31 一种键鼠脚本录制的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510150197.1A CN106155648B (zh) 2015-03-31 2015-03-31 一种键鼠脚本录制的方法及装置

Publications (2)

Publication Number Publication Date
CN106155648A CN106155648A (zh) 2016-11-23
CN106155648B true CN106155648B (zh) 2019-07-26

Family

ID=57337294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510150197.1A Expired - Fee Related CN106155648B (zh) 2015-03-31 2015-03-31 一种键鼠脚本录制的方法及装置

Country Status (1)

Country Link
CN (1) CN106155648B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106791136A (zh) * 2016-12-29 2017-05-31 努比亚技术有限公司 一种视频录制处理方法、装置及终端
CN108693976A (zh) * 2018-08-10 2018-10-23 唐山数通科技有限公司 录制器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414221A (zh) * 2008-10-31 2009-04-22 深圳市神舟电脑股份有限公司 一种实现键盘快捷键自定义功能的方法
CN101620564A (zh) * 2008-06-30 2010-01-06 福建升腾资讯有限公司 终端系统的录制回放模式自动化测试方法
CN102831344A (zh) * 2012-07-27 2012-12-19 北京奇虎科技有限公司 一种进程的处理方法和装置
CN102890641A (zh) * 2012-08-30 2013-01-23 北京奇虎科技有限公司 一种进程行为控制的方法和装置
CN103677808A (zh) * 2013-11-12 2014-03-26 北京奇虎科技有限公司 用于移动终端的时间事件设置方法及设备
CN104008040A (zh) * 2014-06-04 2014-08-27 浙江工业大学 一种电脑上长时间玩键盘游戏的自动检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI431508B (zh) * 2011-04-08 2014-03-21 Primax Electronics Ltd 鍵盤測試方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101620564A (zh) * 2008-06-30 2010-01-06 福建升腾资讯有限公司 终端系统的录制回放模式自动化测试方法
CN101414221A (zh) * 2008-10-31 2009-04-22 深圳市神舟电脑股份有限公司 一种实现键盘快捷键自定义功能的方法
CN102831344A (zh) * 2012-07-27 2012-12-19 北京奇虎科技有限公司 一种进程的处理方法和装置
CN102890641A (zh) * 2012-08-30 2013-01-23 北京奇虎科技有限公司 一种进程行为控制的方法和装置
CN103677808A (zh) * 2013-11-12 2014-03-26 北京奇虎科技有限公司 用于移动终端的时间事件设置方法及设备
CN104008040A (zh) * 2014-06-04 2014-08-27 浙江工业大学 一种电脑上长时间玩键盘游戏的自动检测方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A keystroke logger detection using keyboard-input-related API monitoring;Kohei Nasaka etc.;《IEEE 2011 14th International Conference On Network-Based Information Systems》;20111013;第1-6页
Windows Hooks 中录制与回放钩子的运行机制剖析;贺细平等;《电脑与信息技术》;20061231;第14卷(第6期);第7-11页
全局钩子在.NET平台的实现;花卉;《软件设计开发》;20100130(第35期);第9971-9973页
基于HOOK函数的键盘鼠标动作记录与回放的研究与实现;张璇等;《漯河职业技术学院学报(综合版)》;20050131;第4卷(第1期);第35-38页
基于VB.NET实现全局键盘鼠标钩子;吴林等;《电脑知识与技术》;20101231;第6卷(第36期);第1-4页

Also Published As

Publication number Publication date
CN106155648A (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
JP2022520094A (ja) インタフェース表示方法及びその装置、端末並びにコンピュータプログラム
JPH11191061A (ja) コンピュータプログラム生成装置及びコンピュータプログラム生成方法
CN106201167A (zh) 终端屏幕的分屏显示方法、装置及终端
CN109446832A (zh) 一种截屏方法及装置
CN110119201A (zh) 一种虚拟体验家电设备搭配家居环境的方法和装置
CN107766106B (zh) 生成配置文件的方法和装置
CN106155648B (zh) 一种键鼠脚本录制的方法及装置
CN108170438A (zh) 一种应用程序自动安装方法、终端及计算机可读介质
CN109672909A (zh) 数据处理方法、装置、电子设备及可读存储介质
CN110339571A (zh) 事件生成方法和装置、存储介质以及电子装置
CN109740041A (zh) 网页爬取方法、装置、存储介质和计算机设备
CN103390067B (zh) 用于互联网实体分析的数据处理方法和装置
CN105183280B (zh) 一种列表界面的操作方法及电子终端
CN106201857B (zh) 测试用例的选取方法及装置
US8412744B2 (en) Visualization of runtime analysis across dynamic boundaries
CN108654088B (zh) 程序调试方法和装置、存储介质及电子装置
CN104915244B (zh) 键鼠脚本回放的方法及装置
CN107423090A (zh) 一种Flash播放器异常日志管理方法及系统
CN109522086A (zh) 对窗口的操作方法和装置、计算机装置及可读存储介质
CN104915138B (zh) 信息处理方法及电子设备
CN108446212A (zh) 获取用户行为路径的方法、装置、存储介质及设备
WO2015063782A1 (en) Communicating with unsupported input device
CN104714883B (zh) 用于通过动态地分配时间戳计数器来提高跟踪阵列的效率的方法和设备
CN107885452A (zh) 3D‑Touch模拟方法及装置、计算机装置和计算机可读存储介质
CN109889892A (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190726

Termination date: 20210331