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

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

Info

Publication number
CN106155771A
CN106155771A CN201510149460.5A CN201510149460A CN106155771A CN 106155771 A CN106155771 A CN 106155771A CN 201510149460 A CN201510149460 A CN 201510149460A CN 106155771 A CN106155771 A CN 106155771A
Authority
CN
China
Prior art keywords
window
script
key mus
current
playback
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
CN201510149460.5A
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 CN201510149460.5A priority Critical patent/CN106155771A/zh
Publication of CN106155771A publication Critical patent/CN106155771A/zh
Pending legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

本发明公开了一种键鼠脚本回放的方法及装置,涉及互联网技术领域,解决了用户的无关操作对键鼠脚本回放造成干扰的问题。本发明的方法包括:在通过托管模式进行键鼠脚本回放的过程中,获取当前操作焦点的焦点位置;确定焦点位置所在的当前窗口;判断当前窗口与目的窗口是否为同一个窗口;若当前窗口与目的窗口不为同一个窗口,则切换到后台模式进行键鼠脚本回放。本发明主要用于Windows环境下键鼠脚本回放的过程中。

Description

键鼠脚本回放的方法及装置
技术领域
本发明涉及互联网技术领域,特别是涉及一种键鼠脚本回放的方法及装置。
背景技术
在电脑操作过程中,为了简化用户重复执行某些键盘鼠标的操作,可以对用户的键鼠操作进行脚本录制,得到记录有一系列操作的键鼠脚本,并通过回放键鼠脚本的方式模拟用户此前执行的键鼠操作。现有的回放模式包括后台和托管两种模式,后台模式通过窗口句柄识别目的窗口(即回放所针对的对象窗口),并基于发送消息的方式实现键鼠脚本的执行;而托管模式则不关注目的窗口,仅着眼于键鼠光标的坐标进行脚本执行。因此后台模式下用户可以对其他窗口进行操作,而托管模式则需要保证目的窗口位于桌面中并处于顶层位置。
在上述键鼠脚本回放的过程中,发明人发现:在以托管模式进行回放的过程中,由于光标是全局光标,整个桌面中只有一个,当用户插入手动操作时,就会“抢夺”脚本执行所操作的光标,当用户将光标移出目的窗口后,就会导致执行键鼠脚本的失效。例如,在托管模式下执行键鼠脚本在目的窗口输入账号时,用户将光标移动到其他窗口,则键鼠脚本会基于当前的光标位置在其他窗口中继续输入账号,导致键鼠脚本回放发生错误。
发明内容
有鉴于此,本发明提出了一种键鼠脚本回放的方法及装置,主要目的在于解决用户的无关操作对键鼠脚本回放造成干扰的问题。
依据本发明的第一个方面,本发明提供了一种键鼠脚本回放的方法,包括:
在通过托管模式进行键鼠脚本回放的过程中,获取当前操作焦点的焦点位置;
确定焦点位置所在的当前窗口;
判断当前窗口与目的窗口是否为同一个窗口;
若当前窗口与目的窗口不为同一个窗口,则切换到后台模式进行键鼠脚本回放。
依据本发明的第二个方面,本发明提供了一种键鼠脚本回放的装置,包括:
获取单元,用于在通过托管模式进行键鼠脚本回放的过程中,获取当前操作焦点的焦点位置;
确定单元,用于确定获取单元获取的所述焦点位置所在的当前窗口;
判断单元,用于判断确定单元确定的当前窗口与目的窗口是否为同一个窗口;
切换单元,用于当判断单元判断当前窗口与目的窗口不为同一个窗口时,切换到后台模式进行键鼠脚本回放。
借由上述技术方案,本发明实施例提供的键鼠脚本回放的方法及装置,能够在以托管模式对键鼠脚本进行回放的过程中,获取当前操作焦点的焦点位置并确定焦点位置所在的当前窗口,判断焦点位置所在的当前窗口与目的窗口是否为同一个窗口,若不为同一个窗口,则切换到后台模式进行键鼠脚本回放。由于托管模式仅着眼于操作焦点的焦点位置进行脚本执行,而托管模式下的操作焦点是全局焦点,整个桌面中只有一个,因此在现有技术中,当用户插入手动操作时,就会“抢夺”脚本执行的操作焦点,当用户将操作焦点移出目的窗口后,就会导致执行键鼠脚本的失效。与现有技术相比,本发明能够在用户将操作焦点移出目的窗口对其他窗口进行操作时,自动切换到后台模式进行键鼠脚本回放,从而避免用户的无关操作对键鼠脚本回放造成干扰。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种在托管模式下回放键鼠脚本出现错误的示意图;
图2示出了本发明实施例提供的一种键鼠脚本回放的方法的流程图;
图3示出了本发明实施例提供的一种键鼠脚本回放的装置的结构示意图。
具体实施方式
下面将参照附图更加详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
用户通常在计算机上执行某些任务的过程中会重复进行一系列的点击操作,例如在游戏中通过重复点击目标对象完成任务。由于大量的重复点击操作是一个机械执行的过程,如果通过用户人为进行点击不仅造成用户的操作疲劳,而且还容易使点击出现错误。为了简化用户重复执行键鼠操作,可以在用户首次进行键鼠操作时对用户执行的键鼠操作进行脚本录制,获得键鼠脚本后,由计算机对键鼠脚本进行回放,模拟用户此前执行的键鼠操作,实现键鼠操作的自动执行。为了解放用户的操作,提高点击的效率和准确性,现有技术中提供了一种方法,即对用户的点击操作进行脚本录制,得到记录有需要重复执行的一系列点击操作的键鼠脚本。在执行相关任务的过程中,只需要对相关的键鼠脚本进行回放即可代替用户的手动操作完成任务。但是现有的脚本回放模式还存在一定的缺陷,由于托管模式仅着眼于操作焦点的焦点位置进行脚本执行,而托管模式下的操作焦点是全局焦点,整个桌面中只有一个,当以托管模式进行键鼠脚本回放的过程中,在执行相邻两个操作的间隙用户移动了操作焦点,使操作焦点移出目的窗口,则按照托管模式的回放规则,会基于移动后的操作焦点继续进行脚本回放,从而使针对目的窗口的脚本回放出现错误。
为了更好的理解在托管模式进行键鼠脚本回放的过程中可能出现的错误,以下提供一个场景,以在回放键鼠脚本进行账号输入的过程中用户移动了鼠标指针为例来说明键鼠脚本回放出现的错误。如图1所示,在屏幕桌面上,账号登陆界面作为目的窗口,网页作为其他窗口,当以托管模式回放键鼠脚本在账号登陆界面输入账号a*c1**4的过程中,当输入完a、*、c后,在c与下一个要输入的字符1之间的间隙内,用户将鼠标指针移动到网页的搜索框内,则在托管模式下键鼠脚本的执行会以鼠标指针当前的位置继续进行账号的输入,使得在网页搜索框内继续输入字符1**4,结果造成在账号登陆界面的输入出现错误。
因此,为了解决用户的无关操作对键鼠脚本回放造成干扰的问题,本发明实施例提供了一种键鼠脚本回放的方法,该方法能够避免在托管模式进行键鼠脚本回放过程中用户移动操作焦点对键鼠脚本回放造成干扰。如图2所示,该方法包括:
101、获取当前操作焦点的焦点位置。
在通过托管模式进行键鼠脚本回放的过程中,基于托管模式仅着眼于操作焦点的焦点位置进行脚本执行的特点,当用户在脚本中相邻的两个操作之间手动插入脚本以外的操作,使操作焦点移出目的窗口后,会造成针对目的窗口的脚本执行出现错误。因此需要对操作焦点的焦点位置进行监控,判断其是否位于目的窗口中,如果焦点位置不在目的窗口中,则说明存在脚本执行以外的用户操作,会使针对目的窗口的键鼠脚本回放出现错误。因此,本发明实施例中在判断操作焦点是否位于目的窗口中之前,首先需要确定操作焦点的焦点位置。在本步骤中获取操作焦点的焦点位置可以通过操作焦点的坐标来表示,作为焦点位置的坐标是由数字组成的。
102、确定焦点位置所在的当前窗口。
在进行键鼠脚本回放的过程中,由于用户可以手动插入其他操作,因此操作焦点的焦点的位置可能位于目的窗口中,也可能位于目的窗口外的其他窗口。在本步骤中,可以利用相应的函数根据步骤101获取的焦点位置得到焦点位置所在的当前窗口,当前窗口可以为目的窗口,也可以为其他窗口。
103、判断当前窗口与目的窗口是否为同一个窗口。
当步骤102获取到焦点位置所在的当前窗口后,就需要判断焦点位置所在的当前窗口是否为目的窗口。在Windows系统中,系统会为每个窗口分配一个句柄,本实施例可以通过句柄标识对当前窗口和目的窗口进行比较,判断两者是否为同一个窗口。
104、若当前窗口与目的窗口不为同一个窗口,则切换到后台模式进行键鼠脚本回放。
当通过步骤103确定当前窗口与目的窗口不为同一个窗口,即操作焦点的焦点位置位于目的窗口外,此时若继续以托管模式进行脚本回放,则会造成针对目的窗口的键鼠脚本回放出现错误;而后台模式通过窗口句柄识别目的窗口(即回放所针对的对象窗口),并基于发送消息的方式实现键鼠脚本的执行。基于上述原因,在确定当前窗口与目的窗口不为同一个窗口,且在键鼠脚本执行下一个操作之前,应该立即切换到后台模式进行键鼠脚本回放。
由于在后台模式下进行键鼠脚本的执行是通过目的窗口对消息指令的执行实现的,不再依赖全局焦点,因此用户操作对全局焦点的控制不会对键鼠脚本的回放造成干扰。
本发明实施例提供的键鼠脚本回放的方法,能够在以托管模式对键鼠脚本进行回放的过程中,获取当前操作焦点的焦点位置并确定焦点位置所在的当前窗口,判断焦点位置所在的当前窗口与目的窗口是否为同一个窗口,若不为同一个窗口,则切换到后台模式进行键鼠脚本回放。由于托管模式仅着眼于操作焦点的焦点位置进行脚本执行,而托管模式下的操作焦点是全局焦点,整个桌面中只有一个,因此在现有技术中,当用户插入手动操作时,就会“抢夺”脚本执行的操作焦点,当用户将操作焦点移出目的窗口后,就会导致执行键鼠脚本的失效。与现有技术相比,本发明能够在用户将操作焦点移出目的窗口对其他窗口进行操作时,自动切换到后台模式进行键鼠脚本回放,从而避免用户的无关操作对键鼠脚本回放造成干扰。
为了更好的对上述图2所示的方法进行理解,作为对上述方法的细化和扩展,本发明实施例将针对图2中的步骤进行详细说明。
在本发明实施例的实际操作过程中,需要在一定的时机获取当前操作焦点的焦点位置。如果在托管模式下键鼠脚本执行每一个键鼠操作之后才获取焦点位置,例如当操作焦点在目的窗口外执行了一个键鼠操作A后才获取焦点位置,并根据焦点位置继续执行图2中的步骤102、步骤103、步骤104,这样做虽然会以后台模式使键鼠脚本继续针对目的窗口进行操作,但还是会缺失对目的窗口执行键鼠操作A,造成针对目的窗口的键鼠脚本回放不完整。因此,需要在按照键鼠脚本执行每一步键鼠操作之前就获取当前操作焦点的焦点位置,并执行后续步骤102、步骤103和步骤104。
当按照正确的时机获取操作焦点的焦点位置时,就需要准确的获取焦点位置的坐标。在实际应用中,用户的操作类型包括鼠标操作和键盘操作,对应的,对鼠标操作的操作焦点为鼠标指针,对键盘操作的操作焦点为键盘光标。在进行键鼠脚本回放的过程中,由于存在不同的操作类型,因此针对用户不同的操作,获取焦点位置的坐标的方式也会有不同。
当操作焦点为鼠标指针时,获取操作焦点的焦点位置其实是获取鼠标指针的坐标。在Windows系统中,系统会发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows系统发送一个消息给应用程序。Windows消息本事是作为一个记录传递给应用程序的,这个记录(一般在C/C++/汇编中称为“结构体”)中包含了消息的类型以及其他信息。对于移动鼠标所产生的消息来说,这个记录中包含了鼠标光标当前的坐标。因此,作为一个可选的实施方式,当用户对鼠标进行了操作时,可以利用Windows消息处理机制从Windows消息的结构体信息中获取鼠标指针的坐标。
当操作焦点为键盘光标时,获取操作焦点的焦点位置其实是获取键盘光标的坐标。在Windows系统中,窗口就是通过消息与操作系统互动的,窗口不能直接与使用者交流,使用者移动键盘光标、点击键盘等都是通过操作系统与窗口通信的,窗口信息处理函数极为重要,没有它窗口便不能工作。因此,作为一个可选的实施方式,在实际应用中可以通过调用系统函数从窗口消息中获取坐标。示例性的,可以调用Windows系统中提供的GetGUIThreadInfo函数从当前窗口的窗口信息中获取键盘光标的坐标。
在通过上述不同的实施方式获取到鼠标指针或键盘光标的坐标后,就需要确定操作焦点的坐标所在的当前窗口。在Windows系统中,句柄是一个系统内部数据结构的引用。例如,当对一个窗口进行操作时,系统会分配给该窗口一个句柄,应用程序根据窗口句柄就能要求系统对该窗口进行如移动窗口、改变窗口尺寸等操作。在本质上句柄是一种内部代码,通过该代码能引用受系统控制的特殊元素,如窗口、图标、字体、菜单等。由于在Windows系统中,句柄是和对象一一对应的无符号整数值,对象可以映射到唯一的句柄,句柄也可以映射到唯一的对象。因此,确定操作焦点的坐标所在的当前窗口实际上是确定操作焦点的坐标所在的当前窗口的窗口句柄。而在Windows系统提供的各种函数中,WindowFromPoint函数具有获得包含指定点的窗口的句柄这一功能。因此,作为一种可选的实施方式,可以调用WindowFromPoint函数获取操作焦点的坐标所在的当前窗口的窗口句柄。
由于句柄和对象是一一对应的,可以通过窗口句柄的比对来判断窗口是否为同一个窗口。因此,当获取到操作焦点的坐标所在的当前窗口的窗口句柄后,需要与目的窗口的窗口句柄进行比对,判断当前窗口与目的窗口是否为同一个窗口。若当前窗口的窗口句柄与目的窗口的窗口句柄相同,则确定当前窗口与目的窗口是同一个窗口;若当前窗口的窗口句柄与目的窗口的窗口句柄不同,则确定当前窗口与目的窗口不是同一个窗口。当确定当前窗口与目的窗口不是同一个窗口后,在键鼠脚本执行下一个操作之前立即切换到后台模式进行键鼠脚本回放,避免用户的操作对键鼠脚本回放产生干扰。
由于本发明实施例提供的键鼠脚本回放的方法在实施过程中,从获取焦点位置、确定焦点位置所在的当前窗口、判断当前窗口与目的窗口是否为同一个窗口等步骤是一个重复循环的过程,因此在后续多次执行上述步骤的过程中,当确定当前窗口与目的窗口为同一个窗口时,本发明实施例进一步提供了从后台模式切换回托管模式进行键鼠脚本回放的实现方式。
本发明实施例在执行键鼠脚本的每一步操作之前,都能获取到当前操作焦点的焦点位置并判断其是否位于目的窗口中,并根据判断结果进行后台模式的切换,避免了针对目的窗口的键鼠脚本回放出现错误。同时,针对该方法持续获取焦点位置、确定焦点位置所在的当前窗口、判断当前窗口与目的窗口是否为同一个窗口的特点,本发明实施例还提供了在后续再次确定当前窗口与目的窗口为同一个窗口时,重新切换回托管模式进行键鼠脚本回放的方式,从而能够在用户操作或系统环境复杂的情况下,准确识别哪些操作应该以托管模式进行,哪些操作应该以后台模式执行,在避免用户操作对键鼠脚本回放造成干扰的情况下,实现了针对用户的操作而进行的托管模式和后台模式的相互切换,与现有技术中回放模式单一相比,本发明实施例能够在键鼠脚本回放过程中实现托管模式和后台模式的灵活切换。
进一步的,作为对上述图2所示方法的实现,本发明实施例还提供了一种键鼠脚本回放的装置,如图3所示,该装置包括:获取单元31、确定单元32、判断单元33及切换单元34,其中,
获取单元31,用于在通过托管模式进行键鼠脚本回放的过程中,获取当前操作焦点的焦点位置;
确定单元32,用于确定获取单元31获取的焦点位置所在的当前窗口;
判断单元33,用于判断确定单元32确定的当前窗口与目的窗口是否为同一个窗口;
切换单元34,用于当判断单元33判断当前窗口与目的窗口不为同一个窗口时,切换到后台模式进行键鼠脚本回放。
进一步的,获取单元31用于在执行键鼠脚本的每一步键鼠操作之前,获取当前操作焦点的焦点位置。
进一步的,获取单元31用于在当前操作焦点为鼠标指针时,利用Windows消息获取鼠标指针的坐标。
进一步的,获取单元31用于在当前操作焦点为键盘光标时,获取当前窗口的窗口信息,并从窗口信息中获得键盘光标的坐标。
进一步的,获取单元31用于调用GetGUIThreadInfo函数获取当前窗口的窗口信息。
进一步的,确定单元32用于调用WindowFromPoint函数获取坐标所在的当前窗口的窗口句柄。
进一步的,判断单元33用于将当前窗口的窗口句柄与目的窗口的窗口句柄进行比较;
判断单元33用于当当前窗口的窗口句柄与目的窗口的窗口句柄相同时,确定当前窗口与目的窗口是同一个窗口;
判断单元33用于当当前窗口的窗口句柄与目的窗口的窗口句柄不同时,确定当前窗口与目的窗口不是同一个窗口。
进一步的,切换单元34用于当判断单元33确定当前窗口与目的窗口不为同一个窗口时,切换到后台模式进行键鼠脚本回放。
本发明实施例提供的键鼠脚本回放的装置,能够在以托管模式对键鼠脚本进行回放的过程中,获取当前操作焦点的焦点位置并确定焦点位置所在的当前窗口,判断焦点位置所在的当前窗口与目的窗口是否为同一个窗口,若不为同一个窗口,则切换到后台模式进行键鼠脚本回放。由于托管模式仅着眼于操作焦点的焦点位置进行脚本执行,而托管模式下的操作焦点是全局焦点,整个桌面中只有一个,因此在现有技术中,当用户插入手动操作时,就会“抢夺”脚本执行的操作焦点,当用户将操作焦点移出目的窗口后,就会导致执行键鼠脚本的失效。与现有技术相比,本发明能够在用户将操作焦点移出目的窗口对其他窗口进行操作时,自动切换到后台模式进行键鼠脚本回放,从而避免用户的无关操作对键鼠脚本回放造成干扰。
此外,本发明实施例在执行键鼠脚本的每一步操作之前,都能获取到当前操作焦点的焦点位置并判断其是否位于目的窗口中,并根据判断结果进行后台模式的切换,避免了针对目的窗口的键鼠脚本回放出现错误。同时,针对该方法持续获取焦点位置、确定焦点位置所在的当前窗口、判断当前窗口与目的窗口是否为同一个窗口的特点,本发明实施例还提供了在后续再次确定当前窗口与目的窗口为同一个窗口时,重新切换回托管模式进行键鼠脚本回放的方式,从而能够在用户操作或系统环境复杂的情况下,准确识别哪些操作应该以托管模式进行,哪些操作应该以后台模式执行,在避免用户操作对键鼠脚本回放造成干扰的情况下,实现了针对用户的操作而进行的托管模式和后台模式的相互切换,与现有技术中回放模式单一相比,本发明实施例能够在键鼠脚本回放过程中实现托管模式和后台模式的灵活切换。
本发明实施例公开了:
A1、一种键鼠脚本回放的方法,所述方法包括:
在通过托管模式进行键鼠脚本回放的过程中,获取当前操作焦点的焦点位置;
确定所述焦点位置所在的当前窗口;
判断所述当前窗口与目的窗口是否为同一个窗口;
若所述当前窗口与所述目的窗口不为同一个窗口,则切换到后台模式进行键鼠脚本回放。
A2、根据A1所述的方法,所述获取当前操作焦点的焦点位置,包括:
在执行所述键鼠脚本的每一步键鼠操作之前,获取当前操作焦点的焦点位置。
A3、根据A1所述的方法,所述当前操作焦点为鼠标指针,所述获取当前操作焦点的焦点位置,包括:
利用Windows消息获取所述鼠标指针的坐标。
A4、根据A1所述的方法,所述当前操作焦点为键盘光标,所述获取当前操作焦点的焦点位置,包括:
获取所述当前窗口的窗口信息,并从所述窗口信息中获得所述键盘光标的坐标。
A5、根据A4所述的方法,所述获取所述当前窗口的窗口信息,包括:
调用GetGUIThreadInfo函数获取所述当前窗口的窗口信息。
A6、根据A3至A5中任一项所述的方法,所述确定所述焦点位置所在的当前窗口,包括:
调用WindowFromPoint函数获取所述坐标所在的当前窗口的窗口句柄。
A7、根据A6所述的方法,所述判断所述当前窗口与目的窗口是否为同一个窗口,包括:
将所述当前窗口的窗口句柄与所述目的窗口的窗口句柄进行比较;
若所述当前窗口的窗口句柄与所述目的窗口的窗口句柄相同,则确定所述当前窗口与所述目的窗口是同一个窗口;
若所述当前窗口的窗口句柄与所述目的窗口的窗口句柄不同,则确定所述当前窗口与所述目的窗口不是同一个窗口。
A8、根据A2所述的方法,所述方法进一步包括:
若所述当前窗口与所述目的窗口为同一个窗口,则切换到托管模式进行键鼠脚本回放。
B9、一种键鼠脚本回放的装置,所述装置包括:
获取单元,用于在通过托管模式进行键鼠脚本回放的过程中,获取当前操作焦点的焦点位置;
确定单元,用于确定所述获取单元获取的所述焦点位置所在的当前窗口;
判断单元,用于判断所述确定单元确定的所述当前窗口与目的窗口是否为同一个窗口;
切换单元,用于当所述判断单元判断所述当前窗口与所述目的窗口不为同一个窗口时,切换到后台模式进行键鼠脚本回放。
B10、根据B9所述的装置,所述获取单元用于在执行所述键鼠脚本的每一步键鼠操作之前,获取当前操作焦点的焦点位置。
B11、根据B9所述的装置,所述获取单元用于在当前操作焦点为鼠标指针时,利用Windows消息获取所述鼠标指针的坐标。
B12、根据B9所述的装置,所述获取单元用于在当前操作焦点为键盘光标时,获取所述当前窗口的窗口信息,并从所述窗口信息中获得所述键盘光标的坐标。
B13、根据B12所述的装置,所述获取单元用于调用GetGUIThreadInfo函数获取所述当前窗口的窗口信息。
B14、根据B11至B13中任一项所述的装置,所述确定单元用于调用WindowFromPoint函数获取所述坐标所在的当前窗口的窗口句柄。
B15、根据B14所述的装置,所述判断单元用于将所述当前窗口的窗口句柄与所述目的窗口的窗口句柄进行比较;
所述判断单元用于当所述当前窗口的窗口句柄与所述目的窗口的窗口句柄相同时,确定所述当前窗口与所述目的窗口是同一个窗口;
所述判断单元用于当所述当前窗口的窗口句柄与所述目的窗口的窗口句柄不同时,确定所述当前窗口与所述目的窗口不是同一个窗口。
B16、根据B10所述的装置,所述切换单元用于当所述判断单元确定所述当前窗口与所述目的窗口不为同一个窗口时,切换到后台模式进行键鼠脚本回放。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种键鼠脚本回放的方法,其特征在于,所述方法包括:
在通过托管模式进行键鼠脚本回放的过程中,获取当前操作焦点的焦点位置;
确定所述焦点位置所在的当前窗口;
判断所述当前窗口与目的窗口是否为同一个窗口;
若所述当前窗口与所述目的窗口不为同一个窗口,则切换到后台模式进行键鼠脚本回放。
2.根据权利要求1所述的方法,其特征在于,所述获取当前操作焦点的焦点位置,包括:
在执行所述键鼠脚本的每一步键鼠操作之前,获取当前操作焦点的焦点位置。
3.根据权利要求1所述的方法,其特征在于,所述当前操作焦点为鼠标指针,所述获取当前操作焦点的焦点位置,包括:
利用Windows消息获取所述鼠标指针的坐标。
4.根据权利要求1所述的方法,其特征在于,所述当前操作焦点为键盘光标,所述获取当前操作焦点的焦点位置,包括:
获取所述当前窗口的窗口信息,并从所述窗口信息中获得所述键盘光标的坐标。
5.根据权利要求4所述的方法,其特征在于,所述获取所述当前窗口的窗口信息,包括:
调用GetGUIThreadInfo函数获取所述当前窗口的窗口信息。
6.一种键鼠脚本回放的装置,其特征在于,所述装置包括:
获取单元,用于在通过托管模式进行键鼠脚本回放的过程中,获取当前操作焦点的焦点位置;
确定单元,用于确定所述获取单元获取的所述焦点位置所在的当前窗口;
判断单元,用于判断所述确定单元确定的所述当前窗口与目的窗口是否为同一个窗口;
切换单元,用于当所述判断单元判断所述当前窗口与所述目的窗口不为同一个窗口时,切换到后台模式进行键鼠脚本回放。
7.根据权利要求6所述的装置,其特征在于,所述获取单元用于在执行所述键鼠脚本的每一步键鼠操作之前,获取当前操作焦点的焦点位置。
8.根据权利要求6所述的装置,其特征在于,所述获取单元用于在当前操作焦点为鼠标指针时,利用Windows消息获取所述鼠标指针的坐标。
9.根据权利要求6所述的装置,其特征在于,所述获取单元用于在当前操作焦点为键盘光标时,获取所述当前窗口的窗口信息,并从所述窗口信息中获得所述键盘光标的坐标。
10.根据权利要求9所述的装置,其特征在于,所述获取单元用于调用GetGUIThreadInfo函数获取所述当前窗口的窗口信息。
CN201510149460.5A 2015-03-31 2015-03-31 键鼠脚本回放的方法及装置 Pending CN106155771A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510149460.5A CN106155771A (zh) 2015-03-31 2015-03-31 键鼠脚本回放的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510149460.5A CN106155771A (zh) 2015-03-31 2015-03-31 键鼠脚本回放的方法及装置

Publications (1)

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

Family

ID=57337236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510149460.5A Pending CN106155771A (zh) 2015-03-31 2015-03-31 键鼠脚本回放的方法及装置

Country Status (1)

Country Link
CN (1) CN106155771A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635015A (zh) * 2009-08-31 2010-01-27 北京飞天诚信科技有限公司 一种增强界面安全性的方法
CN101853204A (zh) * 2010-06-01 2010-10-06 华南理工大学 一种windows环境下的复杂控件测试系统
CN102841789A (zh) * 2012-06-29 2012-12-26 北京奇虎科技有限公司 一种对浏览器中的用户操作进行录制和回放的方法和装置
US20130151600A1 (en) * 2007-10-15 2013-06-13 Software Research, Inc. Method and System for Testing Websites
CN104268006A (zh) * 2014-10-27 2015-01-07 北京奇虎科技有限公司 键鼠脚本的回放方法及装置
CN104301175A (zh) * 2014-09-24 2015-01-21 蓝盾信息安全技术有限公司 一种基于浏览器的web业务系统仿真监控方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151600A1 (en) * 2007-10-15 2013-06-13 Software Research, Inc. Method and System for Testing Websites
CN101635015A (zh) * 2009-08-31 2010-01-27 北京飞天诚信科技有限公司 一种增强界面安全性的方法
CN101853204A (zh) * 2010-06-01 2010-10-06 华南理工大学 一种windows环境下的复杂控件测试系统
CN102841789A (zh) * 2012-06-29 2012-12-26 北京奇虎科技有限公司 一种对浏览器中的用户操作进行录制和回放的方法和装置
CN104301175A (zh) * 2014-09-24 2015-01-21 蓝盾信息安全技术有限公司 一种基于浏览器的web业务系统仿真监控方法
CN104268006A (zh) * 2014-10-27 2015-01-07 北京奇虎科技有限公司 键鼠脚本的回放方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TXDY077345: "后台鼠标操作和键盘操作是怎么样实现的?", 《HTTPS://BBS.CSDN.NET/TOPICS/390718194》 *
李文博: "利用Delphi实现键盘、鼠标的记录和回放", 《安徽教育学院学报》 *

Similar Documents

Publication Publication Date Title
CN104268006B (zh) 键鼠脚本的回放方法及装置
CN106547678B (zh) 用于白盒测试的方法和装置
CN105701006B (zh) 用于程序调试中的变量跟踪的方法和系统
CN107025165A (zh) 游戏自动化测试方法及相关装置
US9921826B2 (en) Visualizing a congruency of versions of an application across phases of a release pipeline
EP1679601A2 (en) Method for automatic graphical profiling of a dialog system
US20110246897A1 (en) Interactive visualization to enhance automated fault diagnosis in networks
US9582620B1 (en) Method and system for automated refined exclusion of entities from a metric driven verification analysis score
CN110109598A (zh) 一种动画交互实现方法、装置及电子设备
US20150066573A1 (en) System and method for providing a process player for use with a business process design environment
CN103390067B (zh) 用于互联网实体分析的数据处理方法和装置
CN103455417B (zh) 一种基于马尔可夫模型的软件错误定位系统及错误定位方法
WO2020227181A1 (en) Electronic product testing systems for providing automated product testing
Romero et al. Visual attention and representation switching during java program debugging: A study using the restricted focus viewer
CN106156173A (zh) 一种作弊识别方法、装置及终端
CN109522086A (zh) 对窗口的操作方法和装置、计算机装置及可读存储介质
CN107569851A (zh) 游戏挂机方法、装置及系统
CN106569675B (zh) 一种提示框显示方法及装置
CN106155771A (zh) 键鼠脚本回放的方法及装置
Shelly et al. Application of traditional software testing methodologies to web accessibility
CN111930636B (zh) 图形编程作品检查方法、装置、系统、设备及存储介质
CN104915243B (zh) 键鼠脚本回放的方法及装置
Corrêa et al. Software testing automation of VR-based systems with haptic interfaces
Bazrafshan et al. Effect of clone information on the performance of developers fixing cloned bugs
US20170068893A1 (en) System, Method and Software for Representing Decision Trees

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20161123