多脚本回放方法及装置制造方法

文档序号:6639226阅读:251来源:国知局
多脚本回放方法及装置制造方法
【专利摘要】本发明公开了一种多脚本回放方法及装置,涉及脚本回放【技术领域】,所述方法包括:当多个脚本在分别对应的窗口进行消息回放时,获取每一脚本中待回放消息的类型;判断所述待回放消息的类型是否为第一类型消息,若是,则将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放。本发明通过获取每一脚本中待回放消息的类型,并判断所述待回放消息的类型是否为第一类型消息,在所述待回放消息的类型是第一类型消息时,则将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放,实现了多脚本在分别对应的窗口进行消息回放,大幅提高了脚本回放的效率。
【专利说明】多脚本回放方法及装置

【技术领域】
[0001]本发明涉及脚本回放【技术领域】,特别涉及一种多脚本回放方法及装置。

【背景技术】
[0002]在软件编程或测试过程中,为了实现类似虚拟键的功能,需要将键盘和鼠标的行为进行脚本录制,从而采用脚本模拟用户点击键盘或者鼠标的行为。
[0003]在完成脚本录制后,需要对录制好的脚本进行回放,以确定脚本的正确性,但现有技术中,通常对脚本在单个窗口中依次进行脚本回放,而待回放的脚本数量过多,导致脚本回放的效率过低。


【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种多脚本回放方法和相应的一种多脚本回放装置。
[0005]依据本发明的一个方面,提供了一种多脚本回放方法,所述方法包括:
[0006]当多个脚本在分别对应的窗口进行消息回放时,获取每一脚本中待回放消息的类型;
[0007]判断所述待回放消息的类型是否为第一类型消息,若是,则将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放。
[0008]可选地,所述判断所述待回放消息的类型是否为第一类型消息之后,还包括:
[0009]在待回放消息的类型为第一类型消息,且当前焦点窗口回放的消息不是第一类型消息时,执行所述该脚本对应的窗口设置为焦点窗口的步骤。
[0010]可选地,所述判断所述待回放消息的类型是否为第一类型消息之后,还包括:
[0011]在待回放消息的类型为第一类型消息,且所述当前焦点窗口回放的消息是第一类型消息时,将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
[0012]可选地,根据GetForegroundWindow函数获取所述当前焦点窗口的窗口句柄,根据所述窗口句柄确定所述当前的焦点窗口回放消息的类型。
[0013]可选地,所述焦点窗口按照所述等待队列回放对应脚本的待回放消息,包括:
[0014]依次将所述等待队列的头部内脚本对应的窗口设置为焦点窗口,并在所述焦点窗口内回放对应脚本的待回放消息。
[0015]可选地,所述在所述焦点窗口中对该脚本的待回放消息进行回放,包括:
[0016]在所述焦点窗口中对该脚本的待回放消息进行回放,若所述焦点窗口占用焦点的时间超过预设时间,则执行所述将所述待回放消息对应的脚本暂停的步骤。
[0017]可选地,根据SetForegroundWindow函数将脚本对应的窗口设置为焦点窗口。
[0018]可选地,所述第一类型消息为键盘消息。
[0019]依据本发明的另一个方面,提供了一种多脚本回放装置,所述装置包括:
[0020]获取单元,适于当多个脚本在分别对应的窗口进行消息回放时,获取每一脚本中待回放消息的类型;
[0021]判断单元,适于判断所述待回放消息的类型是否为第一类型消息;
[0022]执行单元,适于所述待回放消息的类型为第一类型消息时,将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放。
[0023]可选地,所述执行单元,还适于在待回放消息的类型为第一类型消息,且当前焦点窗口回放的消息不是第一类型消息时,将该脚本对应的窗口设置为焦点窗口。
[0024]可选地,所述执行单元,还适于在待回放消息的类型为待回放消息,且所述当前焦点窗口回放的消息是待回放消息时,将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
[0025]可选地,所述执行单元,还适于根据GetForegroundWindow函数获取所述当前焦点窗口的窗口句柄,根据所述窗口句柄确定所述当前的焦点窗口回放消息的类型。
[0026]可选地,所述执行单元,还适于依次将所述等待队列的头部内脚本对应的窗口设置为焦点窗口,并在所述焦点窗口内回放对应脚本的待回放消息。
[0027]可选地,所述执行单元,还适于在所述焦点窗口中对该脚本的待回放消息进行回放,若所述焦点窗口占用焦点的时间超过预设时间,则将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
[0028]可选地,所述执行单元,还适于根据SetForegroundWindow函数将脚本对应的窗口设置为焦点窗口。
[0029]可选地,所述第一类型消息为键盘消息。
[0030]本发明在多脚本同时回放时,通过获取每一脚本中待回放消息的类型,并判断所述待回放消息的类型是否为第一类型消息,在所述待回放消息的类型是第一类型消息时,则将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放,实现了多脚本在分别对应的窗口进行消息回放,大幅提高了脚本回放的效率。

【专利附图】

【附图说明】
[0031]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0032]图1是本发明一个实施例的一种多脚本回放方法的步骤流程图;
[0033]图2是本发明一个实施例的一种多脚本回放方法的步骤流程图;
[0034]图3是本发明一个实施例的一种多脚本回放方法的步骤流程图;
[0035]图4是本发明一个实施例的一种多脚本回放装置的结构框图。

【具体实施方式】
[0036]下面结合附图和实施例,对本发明的【具体实施方式】作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0037]图1是本发明一个实施例的一种多脚本回放方法的步骤流程图;参照图1,所述方法包括:
[0038]SlOl:当多个脚本在分别对应的窗口进行消息回放时,获取每一脚本中待回放消息的类型;
[0039]需要说明的是,本实施例中,所述消息即为脚本录制时的键盘和鼠标的行为,相应地,所述消息的类型也可对应包括键盘消息和鼠标消息。
[0040]S102:判断所述待回放消息的类型是否为第一类型消息;
[0041]S103:若是,则将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放。
[0042]需要说明的是,在进行脚本回放时,第一类型消息必须要在焦点窗口中才能回放,而任何时刻都只能存在一个焦点窗口,故而为了使得多个脚本在分别对应的窗口进行消息回放,需要对所述待回放消息的类型进行判断。
[0043]可理解的是,由于键盘消息必须要在焦点窗口中才能回放,故而本实施例中将所述第一类型消息设为键盘消息,当然,所述第一类型消息还可能为其他必须要在焦点窗口中才能回放的消息,本发明实施例对此不加以限制。
[0044]本实施例通过获取每一脚本中待回放消息的类型,并判断所述待回放消息的类型是否为第一类型消息,在所述待回放消息的类型是第一类型消息时,则将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放,实现了多脚本在分别对应的窗口进行消息回放,大幅提高了脚本回放的效率。
[0045]图2是本发明一个实施例的一种多脚本回放方法的步骤流程图;参照图2,本实施例的方法包括:
[0046]S201:当多个脚本在分别对应的窗口进行消息回放时,获取每一脚本中待回放消息的类型;
[0047]可理解的是,步骤S201与图1所示的实施例中的步骤SlOl相同,本实施例再次不再赘述。
[0048]S202:判断所述待回放消息的类型是否为第一类型消息;
[0049]S203:判断所述当前焦点窗口回放的消息是否为第一类型消息,若否,则执行步骤S204,若是,则执行步骤S205 ;
[0050]S204:将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放;
[0051]需要说明的是,按照图1所示的实施例进行多脚本回放时,可能会存在当前焦点窗口正在进行第一类型消息回放,而被其它脚本对应的窗口不断争抢焦点窗口的情况,使得多个脚本均无法回放第一类型消息,为避免出现该问题,步骤S204中只有在当前焦点窗口回放的消息不是第一类型消息时,才会将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放。
[0052]S205:将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
[0053]可理解的是,由于当前焦点窗口回放的消息是第一类型消息,故而此时不能直接将该脚本对应的窗口设置为焦点窗口,同时为了避免脚本对应窗口争抢焦点窗口,并保证每个脚本的第一类型消息均可回放,需要保持脚本对应窗口设置焦点窗口的先后顺序,步骤S205中,采用等待队列的方式,将待回放消息对应的脚本放入等待队列的尾部。
[0054]故而,本实施例中的步骤S202?S205为图1所示的实施例的步骤S102?S103的一种更优的实施例。
[0055]可理解的是,为了确定所述当前的焦点窗口回放的消息的类型可采用多种方式,本实施例中,根据GetForegroundWindow函数获取所述当前焦点窗口的窗口句柄,根据所述窗口句柄确定所述当前的焦点窗口回放消息的类型,当然,还可采用其他方式,本发明实施例对此不加以限制。
[0056]图3是本发明一个实施例的一种多脚本回放方法的步骤流程图;参照图3,本实施例的方法包括:
[0057]S301:当多个脚本在分别对应的窗口进行消息回放时,获取每一脚本中待回放消息的类型;
[0058]S302:判断所述待回放消息的类型是否为第一类型消息,若是,则执行步骤S303 ;
[0059]S303:判断所述当前焦点窗口回放的消息是否为第一类型消息,若否,则执行步骤S304,若是,则执行步骤S307 ;
[0060]S304:将该脚本对应的窗口设置为焦点窗口 ;
[0061]S305:在所述焦点窗口中对该脚本的待回放消息进行回放;
[0062]S306:判断所述焦点窗口占用焦点的时间是否超过预设时间,若是,则执行步骤S307 ;
[0063]S307:将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部;
[0064]S308:通过依次将所述等待队列的头部内脚本对应的窗口设置为焦点窗口,并执行步骤S305 ;
[0065]需要说明的是,按照图2所示的实施例进行多脚本回放时,可能会存在某个脚本对应的窗口占用焦点的时间过长的问题,为了避免该问题,本实施例在焦点窗口占用焦点的时间超过预设时间后,则跳转至所述将所述待回放消息对应的脚本暂停的步骤。
[0066]对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0067]图4是本发明一个实施例的一种多脚本回放装置的结构框图;参照图4,所述装置包括:
[0068]获取单元401,适于当多个脚本在分别对应的窗口进行消息回放时,获取每一脚本中待回放消息的类型;
[0069]判断单元402,适于判断所述待回放消息的类型是否为第一类型消息;
[0070]执行单元403,适于所述待回放消息的类型为第一类型消息时,将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放。
[0071]在本发明的一种可选实施例中,所述执行单元,还适于在待回放消息的类型为第一类型消息,且当前焦点窗口回放的消息不是第一类型消息时,将该脚本对应的窗口设置为焦点窗口。
[0072]在本发明的一种可选实施例中,所述执行单元,还适于在待回放消息的类型为待回放消息,且所述当前焦点窗口回放的消息是待回放消息时,将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
[0073]在本发明的一种可选实施例中,所述执行单元,还适于根据GetForegroundWindow函数获取所述当前焦点窗口的窗口句柄,根据所述窗口句柄确定所述当前的焦点窗口回放消息的类型。
[0074]在本发明的一种可选实施例中,所述执行单元,还适于依次将所述等待队列的头部内脚本对应的窗口设置为焦点窗口,并在所述焦点窗口内回放对应脚本的待回放消息。
[0075]在本发明的一种可选实施例中,所述执行单元,还适于在所述焦点窗口中对该脚本的待回放消息进行回放,若所述焦点窗口占用焦点的时间超过预设时间,则将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
[0076]在本发明的一种可选实施例中,所述执行单元,还适于根据SetForegroundWindow函数将脚本对应的窗口设置为焦点窗口。
[0077]在本发明的一种可选实施例中,所述第一类型消息为键盘消息。
[0078]对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0079]应当注意的是,在本发明的系统的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合,例如,可以将一些部件组合为单个部件,或者可以将一些部件进一步分解为更多的子部件。
[0080]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0081]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0082]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关【技术领域】的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
[0083]本发明公开了 Al、一种多脚本回放方法,所述方法包括:
[0084]当多个脚本在分别对应的窗口进行消息回放时,获取每一脚本中待回放消息的类型;
[0085]判断所述待回放消息的类型是否为第一类型消息,若是,则将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放。
[0086]A2、如Al所述的方法,所述判断所述待回放消息的类型是否为第一类型消息之后,还包括:
[0087]在待回放消息的类型为第一类型消息,且当前焦点窗口回放的消息不是第一类型消息时,执行所述该脚本对应的窗口设置为焦点窗口的步骤。
[0088]A3、如A2所述的方法,所述判断所述待回放消息的类型是否为第一类型消息之后,还包括:
[0089]在待回放消息的类型为第一类型消息,且所述当前焦点窗口回放的消息是第一类型消息时,将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
[0090]A4、如A3所述的方法,根据GetForegroundWindow函数获取所述当前焦点窗口的窗口句柄,根据所述窗口句柄确定所述当前的焦点窗口回放消息的类型。
[0091]A5、如A3所述的方法,所述焦点窗口按照所述等待队列回放对应脚本的待回放消息,包括:
[0092]依次将所述等待队列的头部内脚本对应的窗口设置为焦点窗口,并在所述焦点窗口内回放对应脚本的待回放消息。
[0093]A6、如A5所述的方法,所述在所述焦点窗口中对该脚本的待回放消息进行回放,包括:
[0094]在所述焦点窗口中对该脚本的待回放消息进行回放,若所述焦点窗口占用焦点的时间超过预设时间,则执行所述将所述待回放消息对应的脚本暂停的步骤。
[0095]A7、如Al?A6中任一项所述的方法,根据SetForegroundWindow函数将脚本对应的窗口设置为焦点窗口。
[0096]AS、如Al?A6中任一项所述的方法,所述第一类型消息为键盘消息。
[0097]本发明还公开了 B1、一种多脚本回放装置,所述装置包括:
[0098]获取单元,适于当多个脚本在分别对应的窗口进行消息回放时,获取每一脚本中待回放消息的类型;
[0099]判断单元,适于判断所述待回放消息的类型是否为第一类型消息;
[0100]执行单元,适于所述待回放消息的类型为第一类型消息时,将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放。
[0101]B2、如BI所述的装置,所述执行单元,还适于在待回放消息的类型为第一类型消息,且当前焦点窗口回放的消息不是第一类型消息时,将该脚本对应的窗口设置为焦点窗
□ O
[0102]B3、如B2所述的装置,所述执行单元,还适于在待回放消息的类型为待回放消息,且所述当前焦点窗口回放的消息是待回放消息时,将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
[0103]B4、如B3所述的装置,所述执行单元,还适于根据GetForegroundWindow函数获取所述当前焦点窗口的窗口句柄,根据所述窗口句柄确定所述当前的焦点窗口回放消息的类型。
[0104]B5、如B3所述的装置,所述执行单元,还适于依次将所述等待队列的头部内脚本对应的窗口设置为焦点窗口,并在所述焦点窗口内回放对应脚本的待回放消息。
[0105]B6、如B5所述的装置,所述执行单元,还适于在所述焦点窗口中对该脚本的待回放消息进行回放,若所述焦点窗口占用焦点的时间超过预设时间,则将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
[0106]B7、如BI?B6中任一项所述的装置,所述执行单元,还适于根据SetForegroundffindow函数将脚本对应的窗口设置为焦点窗口。
[0107]88、如BI?B6中任一项所述的装置,所述第一类型消息为键盘消息。
【权利要求】
1.一种多脚本回放方法,其特征在于,所述方法包括: 当多个脚本在分别对应的窗口进行消息回放时,获取每一脚本中待回放消息的类型; 判断所述待回放消息的类型是否为第一类型消息,若是,则将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放。
2.如权利要求1所述的方法,其特征在于,所述判断所述待回放消息的类型是否为第一类型消息之后,还包括: 在待回放消息的类型为第一类型消息,且当前焦点窗口回放的消息不是第一类型消息时,执行所述该脚本对应的窗口设置为焦点窗口的步骤。
3.如权利要求2所述的方法,其特征在于,所述判断所述待回放消息的类型是否为第一类型消息之后,还包括: 在待回放消息的类型为第一类型消息,且所述当前焦点窗口回放的消息是第一类型消息时,将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
4.如权利要求3所述的方法,其特征在于,所述焦点窗口按照所述等待队列回放对应脚本的待回放消息,包括: 依次将所述等待队列的头部内脚本对应的窗口设置为焦点窗口,并在所述焦点窗口内回放对应脚本的待回放消息。
5.如权利要求4所述的方法,其特征在于,所述在所述焦点窗口中对该脚本的待回放消息进行回放,包括: 在所述焦点窗口中对该脚本的待回放消息进行回放,若所述焦点窗口占用焦点的时间超过预设时间,则执行所述将所述待回放消息对应的脚本暂停的步骤。
6.一种多脚本回放装置,其特征在于,所述装置包括: 获取单元,适于当多个脚本在分别对应的窗口进行消息回放时,获取每一脚本中待回放消息的类型; 判断单元,适于判断所述待回放消息的类型是否为第一类型消息; 执行单元,适于所述待回放消息的类型为第一类型消息时,将该脚本对应的窗口设置为焦点窗口,在所述焦点窗口中对该脚本的待回放消息进行回放。
7.如权利要求6所述的装置,其特征在于,所述执行单元,还适于在待回放消息的类型为第一类型消息,且当前焦点窗口回放的消息不是第一类型消息时,将该脚本对应的窗口设置为焦点窗口。
8.如权利要求7所述的装置,其特征在于,所述执行单元,还适于在待回放消息的类型为待回放消息,且所述当前焦点窗口回放的消息是待回放消息时,将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
9.如权利要求8所述的装置,其特征在于,所述执行单元,还适于依次将所述等待队列的头部内脚本对应的窗口设置为焦点窗口,并在所述焦点窗口内回放对应脚本的待回放消息。
10.如权利要求9所述的装置,其特征在于,所述执行单元,还适于在所述焦点窗口中对该脚本的待回放消息进行回放,若所述焦点窗口占用焦点的时间超过预设时间,则将所述待回放消息对应的脚本暂停,并将所述待回放消息对应的脚本放入等待队列的尾部,以使焦点窗口按照所述等待队列回放对应脚本的待回放消息。
【文档编号】G06F9/44GK104461694SQ201410790209
【公开日】2015年3月25日 申请日期:2014年12月17日 优先权日:2014年12月17日
【发明者】陈佃晓 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1