具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种键鼠脚本回放的方法,如图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)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。