具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决现有技术中远程控制对网络带宽要求较高的问题,本发明实施例提供了一种远程控制的方法,该方法以被控端侧为执行主体,具体的,如图1所示,包括:
101、被控端向控制端发送远程控制请求。
其中,远程控制请求用于指示控制端对被控端侧的第一对象窗口进行远程控制。该远程控制请求可以不携带其他信息,只是一个触发控制端对被控端进行远程控制的数据请求。例如,被控端用户可以向控制端用户讲述所要被控制的第一对象窗口是哪一个窗口,此时被控端只要向控制端发送一个单纯的有关远程控制的数据请求,控制端用户根据被控端用户提供的第一对象窗口信息,实现对第一对象窗口的远程控制。
此外,远程控制请求中还可以携带有关第一对象窗口的窗口句柄,由于窗口句柄用于标识窗口,所以根据窗口句柄,控制端就可以确定被控端侧需要控制的第一对象窗口,从而可以实现对该第一对象窗口的远程控制。
102、被控端接收控制端录制并发送的键鼠控制脚本。
其中,键鼠控制脚本基于控制端侧的第二对象窗口录制而成,第二对象窗口为内容与第一对象窗口相同的对端侧对象窗口。
之所以需要第二对象窗口与第一对象窗口的内容相同,是因为控制端和被控端是两个不同的终端,若要实现控制端对被控端的远程控制,就必须使得两端针对的窗口在本质上是相同的。例如,被控端侧的第一对象窗口为M浏览器的首页,则控制端侧的第二对象窗口也是M浏览器的首页。由此,控制端只有针对本端M浏览器首页录制键鼠控制脚本才能控制被控端侧的M浏览器的首页。
需要说明的是,键鼠控制脚本可以以事件的形式顺序记录用户对键盘或鼠标的每一次操作,并且记录相邻操作之间的时间间隔,形成一个线性集合。
103、被控端通过托管模式对键鼠控制脚本进行回放,以实现控制端对第一对象窗口的远程控制。
在被控端接收到控制端录制的键鼠控制脚本后,被控端执行该键鼠控制脚本,实现对该键鼠控制脚本的回放。由于该键鼠控制脚本是基于与第一对象窗口内容相同的第二对象窗口录制的,所以在被控端对该键鼠控制脚本进行回放的过程中,实现了对第一对象窗口的键鼠模拟操作,从而实现了对第一对象窗口的远程控制。
本步骤中采用的托管模式是基于键鼠光标进行脚本回放的,键鼠光标是全局光标,整个桌面中只有一个,因此在托管模式下进行键鼠控制脚本回放时,整个被控端的桌面都被控制,从而被控端用户无法进行键鼠操作,进而保证了远程控制的正常运行。
本发明实施例提供的远程控制的方法,能够在控制端接收到被控端发送的远程控制请求后,针对与被控端侧的第一对象窗口内容相同的控制端侧的第二对象窗口录制键鼠控制脚本,在被控端接收到控制端发送的键鼠控制脚本后,被控端通过托管模式对该键鼠控制脚本进行回放,以实现控制端对被控端侧的第一对象窗口的远程控制。与现有技术中需要较高的网络带宽相比,本发明中的被控端在对控制端录制的键鼠控制脚本进行回放时,键鼠控制脚本已存储在被控端本地,从而整个远程控制无需受控于网络带宽,进而解决了现有技术中远程控制对网络带宽要求较高的问题。
进一步的,上述步骤101中提到,远程控制请求中可以携带有关第一对象窗口的窗口句柄,控制端直接根据该窗口句柄确定所要远程控制的第一对象窗口,并实现对该第一对象窗口的远程控制。具体的,在控制端获得第一对象窗口的窗口句柄后,控制端可以根据该窗口句柄查找到第二对象窗口,并针对第二对象窗口录制键鼠控制脚本,从而将键鼠控制脚本发送给被控端,通过被控端对该键鼠控制脚本进行回放,以实现控制端对被控端的远程控制。
由于本发明是在托管模式下进行键鼠控制脚本回放的,所以在控制端录制键鼠控制脚本时,只是记录键盘或者鼠标光标在桌面上的位置,而不记录键鼠光标所在的窗口信息。因此,若要实现控制端对被控端的远程控制,就必须满足第一对象窗口与第二对象窗口的尺寸、位置等完全相同。然而,在实际应用中,由于用户会对窗口进行拖动、放大或者缩小等操作,所以可能会导致两个窗口的尺寸、位置等信息存在不同。此外,对于同一种应用,不同用户可能使用不同的版本,不同版本的同种应用会存在内容的变化,因此,版本不同也会影响整个远程控制的操作结果。由此可知,在控制端录制键鼠控制脚本之前,需要将第一对象窗口与第二对象窗口进行同步。
其中,对于同步两个窗口的尺寸、位置的方法可以有两种。具体内容如下:
方法一:被控端向控制端发送第一对象窗口的属性信息,以同步第一对象窗口和第二对象窗口。
其中,属性信息包括窗口的尺寸信息和位置信息。当被控端向控制端发送远程控制请求的同时,可以向其发送第一对象窗口的属性信息,以便控制端根据第一对象窗口的属性信息,将第二对象窗口同步为第一对象窗口。
方法二:被控端接收控制端发送的第二对象窗口的属性信息,以同步第一对象窗口和第二对象窗口。
本方法中的属性信息与方法一种的属性信息相同,同样是指窗口的尺寸信息和位置信息。本方法是在控制端录制键鼠控制脚本之前,将第二对象窗口的属性信息发送给被控端,以便被控端根据第二对象窗口的属性信息,将第一对象窗口同步为第二对象窗口。
此外,当应用的窗口尺寸、位置同步后,两个窗口可能位于不同的界面。例如,第一对象窗口可能位于首界面,第二对象窗口可能位于第二个界面。在实际应用中,用户进行远程控制的操作往往是从一个应用的首界面开始的,因此,还需要同步两个对象窗口的首界面。对于被控端侧,当需要将第一对象窗口的初始状态设置为首界面时,需要进行如下操作:
被控端检测第一对象窗口的应用是否已启动。若没有启动,则启动第一对象窗口的应用;若已启动,则判断当前界面是否为首界面;若当前界面不是首界面,则将当前界面回退到首界面。
在实际应用中,当两个应用的版本相同时,两者首界面中的内容才是完全相同的。因此在同步两个对象窗口的首界面之前,需要将第一对象窗口的应用版本与第二对象窗口的应用版本进行同步。具体的,实现两者同步的方式可以有如下两种:
方式一:被控端将第一对象窗口的应用版本号发送给控制端,以便同步两者应用版本。
当被控端向控制端发送远程控制请求时,可以向控制端发送第一对象窗口的应用版本号,以便当控制端需要同步应用版本时,可以根据第一对象窗口的应用版本号做版本的同步操作。
方式二:被控端接收控制端发送的第二对象窗口的应用版本号;将第一对象窗口的应用版本号与第二对象窗口的应用版本号进行比较;若两者应用版本号不同,则将两者应用版本同步为同一个应用版本;若两者应用版本号相同,则已实现两者应用版本的同步。
其中,对于将两者应用版本同步为同一个应用版本的具体实现方式可以有如下两种:
第一种:被控端将第一对象窗口的应用版本同步为第二对象窗口的应用版本。
第二种:被控端向控制端发送第一对象窗口的应用版本号,以便控制端将第二对象窗口的应用版本同步为第一对象窗口的应用版本。
示例性的,若第一对象窗口的应用版本号是1.0,第二对象窗口的应用版本号是1.1,则被控端可以将第一对象窗口的应用版本同步为第二对象窗口的应用版本,即被控端将第一对象窗口的应用升级为版本号为1.1的版本。此外,被控端还可以将第一对象窗口的应用版本号发送给控制端,以便控制端将第二对象窗口的应用降级为版本号为1.0的版本。
进一步的,由于当被控端接收到控制端发送的键鼠控制脚本后,该键鼠控制脚本就已经存储在被控端本地,因此,在被控端处于离线环境下时,也可以通过托管模式对键鼠控制脚本进行回放,从而进一步解决了现有技术中远程控制对网络带宽要求较高的问题。
进一步的,在上述步骤102中提到键鼠控制脚本是以事件的形式进行记录的,因此在托管模式下进行键鼠控制脚本回放时,被控端会依次执行键鼠控制脚本中的每一个事件,从而实现键鼠的模拟操作,但是在相邻两个事件之间是有时间间隔的,在该时间间隔内,键鼠光标没有被控制,因此用户可以手动进行键盘或者鼠标的操作。为了保证远程控制的操作过程不受用户的影响,被控端可以屏蔽用户的任何键鼠操作。其具体实现方式如下:
被控端检测用户触发的键鼠操作指令;若检测到键鼠操作指令,则通过播放引擎接管键鼠操作指令,并将键鼠操作指令屏蔽。
当被控端检测到用户触发的键鼠操作指令后,需要先确定该键鼠操作指令具体的位置,才能执行对应位置的键鼠操作指令。因此,在没有确定该键鼠操作指令的具体位置之前,可以通过播放引擎将该键鼠操作指令进行接管,并将接管的键鼠操作指令屏蔽,从而使得用户触发的键鼠操作指令没有实际的操作结果,进而避免了用户的手动操作会干扰键鼠控制脚本的回放。
进一步的,针对上述实施例中以被控端为执行主体的方法,本发明实施例还提供了一种远程控制的方法,如图2所示,该方法以控制端侧为执行主体,具体的,包括:
201、控制端接收被控端发送的远程控制请求。
当被控端向控制端发送远程控制请求后,控制端会接收该远程控制请求,以便对被控端侧的第一对象窗口进行远程控制。
202、控制端根据远程控制请求确定与第一对象窗口的内容相同的第二对象窗口。
由于控制端和被控端是两个不同的终端,所以若要实现控制端对被控端的远程控制,就必须使得两端针对的窗口在本质上是相同的。对于确定第二对象窗口的方法需要根据远程控制请求的内容来决定。
当该远程控制请求不携带其他信息,只是一个触发控制端对被控端进行远程控制的数据请求时,控制端用户可以根据被控端用户提供的第一对象窗口信息来确定第二对象窗口。
当远程控制请求中携带有第一对象窗口的窗口句柄时,控制端可以根据该窗口句柄来查找第二对象窗口。在控制端根据第一对象窗口的窗口句柄查找第二对象窗口的过程中,控制端可以根据窗口句柄获得第一对象窗口的窗口类名和窗口标题名,从而根据窗口类名和窗口标题名找到对应本端侧的第二对象窗口,进而确定第二对象窗口。
203、控制端针对第二对象窗口录制键鼠控制脚本,并向被控端发送键鼠控制脚本,以使得被控端通过托管模式对键鼠控制脚本进行回放,以实现控制端对第一对象窗口的远程控制。
当控制端确定第二对象窗口之后,需要针对第二对象窗口录制键鼠控制脚本。该键鼠控制脚本中的内容是控制端对被控端侧第一对象窗口进行远程控制的具体操作内容。对于被控端接收到键鼠控制脚本后对其进行回放的具体操作内容,在以被控端侧为执行主体的实施例中已经阐述,因此在此不再赘述。
本发明实施例提供的远程控制的方法,能够在控制端接收到被控端发送的远程控制请求后,针对与被控端侧的第一对象窗口内容相同的控制端侧的第二对象窗口录制键鼠控制脚本,在被控端接收到控制端发送的键鼠控制脚本后,被控端通过托管模式对该键鼠控制脚本进行回放,以实现控制端对被控端侧的第一对象窗口的远程控制。与现有技术中需要较高的网络带宽相比,本发明中的被控端在对控制端录制的键鼠控制脚本进行回放时,键鼠控制脚本已存储在被控端本地,从而整个远程控制无需受控于网络带宽,进而解决了现有技术中远程控制对网络带宽要求较高的问题。
进一步的,在以被控端侧为执行主体的实施例中已经提及,为了完成控制端对被控端侧第一对象窗口的远程控制,在控制端针对第二对象窗口录制键鼠控制脚本之前,需要将第一对象窗口与第二对象窗口进行同步。
与被控端侧针对窗口的尺寸、位置进行同步的方法一相对应的,当被控端向控制端发送第一对象窗口的属性信息后,控制端需要接收该属性信息,以便将第二对象窗口同步为与第一对象窗口尺寸、位置相同的窗口。
与被控端侧针对窗口的尺寸、位置进行同步的方法二相对应的,控制端需要向被控端发送第二对象窗口的属性信息,被控端才能接收到该属性信息,从而被控端根据该属性信息,将第一对象窗口同步为与第二对象窗口尺寸、位置相同的窗口。
进一步的,在上述实施例中提到,除了同步窗口的尺寸和位置外,还需要将两个窗口同步为首界面。因此,对于控制端侧,在对第二对象窗口进行键鼠控制脚本录制前,需要将第二对象窗口设置为首界面,其具体实现方式如下:
控制端检测第二对象窗口的应用是否已启动。若没有启动,则启动第二对象窗口的应用;若已启动,则判断当前界面是否为首界面;若当前界面不是首界面,则将当前界面回退到首界面。
进一步的,在上述实施例中提到,在进行首界面的同步之前,还需要对两个窗口的应用版本进行同步。具体的,与被控端侧针对窗口的应用版本进行同步的方式一相对应的,当被控端将第一对象窗口的应用版本号发送给控制端时,控制端会接收该应用版本号,并将第一对象窗口的应用版本号与该应用版本号进行比较。若两者应用版本号不同,则将两者应用版本同步为同一个应用版本。
其中,将两者应用版本同步为同一个应用版本的具体实现方式如下:
第一种实现方式:将第二对象窗口的应用版本同步为第一对象窗口的应用版本。
第二种实现方式:向被控端发送第二对象窗口的应用版本号,以便被控端将第一对象窗口的应用版本同步为第二对象窗口的应用版本。
与被控端侧针对窗口的应用版本进行同步的方式二相对应的,若被控端要获得第二对象窗口的应用版本号,并根据该应用版本号进行两应用的版本同步,则需要控制端将第二对象窗口的应用版本号先发送给被控端,被控端才能进行后续的版本同步操作。
进一步的,根据上述方法实施例,本发明的另一个实施例提供了一种远程控制的装置,该装置可以应用于被控端侧,如图3所示,该装置包括:
发送单元31,用于向控制端发送远程控制请求,远程控制请求用于指示控制端对被控端侧的第一对象窗口进行远程控制;
接收单元32,用于接收控制端录制并发送的键鼠控制脚本,键鼠控制脚本基于控制端侧的第二对象窗口录制而成,第二对象窗口为内容与第一对象窗口相同的对端侧对象窗口;
回放单元33,用于通过托管模式对接收单元32接收的键鼠控制脚本进行回放,以实现控制端对第一对象窗口的远程控制。
本发明实施例提供的远程控制的装置,能够在控制端接收到被控端发送的远程控制请求后,针对与被控端侧的第一对象窗口内容相同的控制端侧的第二对象窗口录制键鼠控制脚本,在被控端接收到控制端发送的键鼠控制脚本后,被控端通过托管模式对该键鼠控制脚本进行回放,以实现控制端对被控端侧的第一对象窗口的远程控制。与现有技术中需要较高的网络带宽相比,本发明中的被控端在对控制端录制的键鼠控制脚本进行回放时,键鼠控制脚本已存储在被控端本地,从而整个远程控制无需受控于网络带宽,进而解决了现有技术中远程控制对网络带宽要求较高的问题。
进一步的,发送单元31发送的远程控制请求中携带有第一对象窗口的窗口句柄,用于控制端根据第一对象窗口的窗口句柄查找第二对象窗口。
进一步的,如图4所示,该装置还包括:
同步单元34,用于在控制端录制键鼠控制脚本之前,将第一对象窗口与第二对象窗口进行同步。
具体的,如图4所示,同步单元34包括:
发送子单元341,用于向控制端发送第一对象窗口的属性信息,以同步第一对象窗口和第二对象窗口。
接收子单元342,用于接收控制端发送的第二对象窗口的属性信息,以同步第一对象窗口和第二对象窗口。
同步单元34处理的属性信息包括窗口的尺寸信息和位置信息。
第一同步子单元343,用于同步两个对象窗口的首界面。
进一步的,如图4所示,第一同步子单元343,包括:
检测模块3431,用于检测第一对象窗口的应用是否已启动;
启动模块3432,用于当检测模块3431检测到第一对象窗口的应用没有启动时,启动第一对象窗口的应用;
判断模块3433,用于当检测模块3431检测到第一对象窗口的应用已启动时,判断当前界面是否为首界面;
回退模块3434,用于当判断模块3433的判断结果为当前界面不是首界面时,将当前界面回退到首界面。
进一步的,如图4所示,同步单元34包括:
第二同步子单元344,用于在同步两个对象窗口的首界面之前,将第一对象窗口的应用版本与第二对象窗口的应用版本进行同步。
具体的,如图4所示,第二同步子单元344,包括:
发送模块3441,用于将第一对象窗口的应用版本号发送给控制端,以便同步两者应用版本。
接收模块3442,用于接收控制端发送的第二对象窗口的应用版本号;
比较模块3443,用于将第一对象窗口的应用版本号与接收模块3442接收的第二对象窗口的应用版本号进行比较;
同步模块3444,用于当比较模块3443的比较结果为两者应用版本号不同时,将两者应用版本同步为同一个应用版本。
具体的,同步模块3444,用于将第一对象窗口的应用版本同步为第二对象窗口的应用版本。
同步模块3444,用于向控制端发送第一对象窗口的应用版本号,以便控制端将第二对象窗口的应用版本同步为第一对象窗口的应用版本。
进一步的,回放单元33,用于在离线环境下,通过托管模式对接收单元32接收的键鼠控制脚本进行回放。
进一步的,如图4所示,该装置还包括:
检测单元35,用于在通过托管模式对键鼠控制脚本进行回放的过程中,检测用户触发的键鼠操作指令;
屏蔽单元36,用于当检测单元35检测到键鼠操作指令时,通过播放引擎接管键鼠操作指令,并将键鼠操作指令屏蔽。
进一步的,本发明实施例还提供了一种远程控制的装置,该装置可以应用于控制端侧,如图5所示,该装置包括:
接收单元41,用于接收被控端发送的远程控制请求,远程控制请求用于指示控制端对被控端侧的第一对象窗口进行远程控制;
确定单元42,用于根据接收单元41接收的远程控制请求确定与第一对象窗口的内容相同的第二对象窗口;
录制单元43,用于针对确定单元42确定的第二对象窗口录制键鼠控制脚本,并向被控端发送键鼠控制脚本,以使得被控端通过托管模式对键鼠控制脚本进行回放,以实现控制端对第一对象窗口的远程控制。
本发明实施例提供的远程控制的装置,能够在控制端接收到被控端发送的远程控制请求后,针对与被控端侧的第一对象窗口内容相同的控制端侧的第二对象窗口录制键鼠控制脚本,在被控端接收到控制端发送的键鼠控制脚本后,被控端通过托管模式对该键鼠控制脚本进行回放,以实现控制端对被控端侧的第一对象窗口的远程控制。与现有技术中需要较高的网络带宽相比,本发明中的被控端在对控制端录制的键鼠控制脚本进行回放时,键鼠控制脚本已存储在被控端本地,从而整个远程控制无需受控于网络带宽,进而解决了现有技术中远程控制对网络带宽要求较高的问题。
进一步的,接收单元41接收的远程控制请求中携带有第一对象窗口的窗口句柄,确定单元42,用于根据窗口句柄查找第二对象窗口。
进一步的,如图6所示,该装置还包括:
同步单元44,用于在针对第二对象窗口录制键鼠控制脚本之前,将第一对象窗口与第二对象窗口进行同步。
具体的,如图6所示,同步单元44包括:
接收子单元441,用于接收被控端发送的第一对象窗口的属性信息,以同步第一对象窗口和第二对象窗口。
发送子单元442,用于向被控端发送第二对象窗口的属性信息,以同步第一对象窗口和第二对象窗口。
同步单元44处理的发送的属性信息包括窗口的尺寸信息和位置信息。
第一同步子单元443,用于同步两个对象窗口的首界面。
具体的,如图6所示,第一同步子单元443,包括:
检测模块4431,用于检测第二对象窗口的应用是否已启动;
启动模块4432,用于当检测模块4431检测到第二对象窗口的应用没有启动时,启动第二对象窗口的应用;
判断模块4433,用于当检测模块4431检测到第二对象窗口的应用已启动时,判断当前界面是否为首界面;
回退模块4434,用于当判断模块4433的判断结果为当前界面不是首界面时,将当前界面回退到首界面。
进一步的,如图6所示,同步单元44,还包括:
第二同步子单元444,用于在同步两个对象窗口的首界面之前,将第一对象窗口的应用版本与第二对象窗口的应用版本进行同步。
具体的,如图6所示,第二同步子单元444,包括:
接收模块4441,用于接收被控端发送的第一对象窗口的应用版本号;
比较模块4442,用于将接收模块4441接收的第一对象窗口的应用版本号与第二对象窗口的应用版本号进行比较;
同步模块4443,用于当比较模块4442的比较结果为两者应用版本号不同时,将两者应用版本同步为同一个应用版本。
具体的,同步模块4443,用于将第二对象窗口的应用版本同步为第一对象窗口的应用版本。
同步模块4443,用于向被控端发送第二对象窗口的应用版本号,以便被控端将第一对象窗口的应用版本同步为第二对象窗口的应用版本。
进一步的,如图6所示,第二同步子单元444,包括:
发送模块4444,用于将第二对象窗口的应用版本号发送给被控端,以便同步两者应用版本。
进一步的,根据上述装置实施例,本发明的另一个实施例还提供了一种远程控制的系统,如图7所示,该系统包括被控端51和控制端52,其中被控端51包含如图3至4中任一项所示的装置,控制端52包含如图5至6中任一项所示的装置。
本发明实施例提供的远程控制的系统,能够在控制端接收到被控端发送的远程控制请求后,针对与被控端侧的第一对象窗口内容相同的控制端侧的第二对象窗口录制键鼠控制脚本,在被控端接收到控制端发送的键鼠控制脚本后,被控端通过托管模式对该键鼠控制脚本进行回放,以实现控制端对被控端侧的第一对象窗口的远程控制。与现有技术中需要较高的网络带宽相比,本发明中的被控端在对控制端录制的键鼠控制脚本进行回放时,键鼠控制脚本已存储在被控端本地,从而整个远程控制无需受控于网络带宽,进而解决了现有技术中远程控制对网络带宽要求较高的问题。
本发明实施例还提供了以下方案:
A1、一种远程控制的方法,所述方法包括:
向控制端发送远程控制请求,所述远程控制请求用于指示所述控制端对被控端侧的第一对象窗口进行远程控制;
接收所述控制端录制并发送的键鼠控制脚本,所述键鼠控制脚本基于所述控制端侧的第二对象窗口录制而成,所述第二对象窗口为内容与所述第一对象窗口相同的对端侧对象窗口;
通过托管模式对所述键鼠控制脚本进行回放,以实现所述控制端对所述第一对象窗口的远程控制。
A2、根据A1所述的方法,所述远程控制请求中携带有所述第一对象窗口的窗口句柄,用于所述控制端根据所述第一对象窗口的窗口句柄查找所述第二对象窗口。
A3、根据A2所述的方法,在所述控制端录制所述键鼠控制脚本之前,所述方法还包括:
将所述第一对象窗口与所述第二对象窗口进行同步。
A4、根据A3所述的方法,所述将所述第一对象窗口与所述第二对象窗口进行同步,包括:
向所述控制端发送所述第一对象窗口的属性信息,以同步所述第一对象窗口和所述第二对象窗口。
A5、根据A3所述的方法,所述将所述第一对象窗口与所述第二对象窗口进行同步,包括:
接收所述控制端发送的所述第二对象窗口的属性信息,以同步所述第一对象窗口和所述第二对象窗口。
A6、根据A4或A5所述的方法,所述属性信息包括窗口的尺寸信息和位置信息。
A7、根据A3所述的方法,所述将所述第一对象窗口与所述第二对象窗口进行同步,包括:
同步两个对象窗口的首界面。
A8、根据A7所述的方法,所述同步两个对象窗口的首界面,包括:
检测所述第一对象窗口的应用是否已启动;
若没有启动,则启动所述第一对象窗口的应用;
若已启动,则判断当前界面是否为所述首界面;
若所述当前界面不是所述首界面,则将所述当前界面回退到所述首界面。
A9、根据A7所述的方法,在所述同步两个对象窗口的首界面之前,所述方法还包括:
将所述第一对象窗口的应用版本与所述第二对象窗口的应用版本进行同步。
A10、根据A9所述的方法,所述将所述第一对象窗口的应用版本与所述第二对象窗口的应用版本进行同步,包括:
将所述第一对象窗口的应用版本号发送给所述控制端,以便同步两者应用版本。
A11、根据A9所述的方法,所述将所述第一对象窗口的应用版本与所述第二对象窗口的应用版本进行同步,包括:
接收所述控制端发送的所述第二对象窗口的应用版本号;
将所述第一对象窗口的应用版本号与所述第二对象窗口的应用版本号进行比较;
若两者应用版本号不同,则将两者应用版本同步为同一个应用版本。
A12、根据A11所述的方法,所述将两者应用版本同步为同一个应用版本,包括:
将所述第一对象窗口的应用版本同步为所述第二对象窗口的应用版本。
A13、根据A11所述的方法,所述将两者应用版本同步为同一个应用版本,包括:
向所述控制端发送所述第一对象窗口的应用版本号,以便所述控制端将所述第二对象窗口的应用版本同步为所述第一对象窗口的应用版本。
A14、根据A1所述的方法,所述通过托管模式对所述键鼠控制脚本进行回放,包括:
在离线环境下,通过所述托管模式对所述键鼠控制脚本进行回放。
A15、根据A1所述的方法,在通过所述托管模式对所述键鼠控制脚本进行回放的过程中,所述方法进一步包括:
检测用户触发的键鼠操作指令;
若检测到所述键鼠操作指令,则通过播放引擎接管所述键鼠操作指令,并将所述键鼠操作指令屏蔽。
B16、一种远程控制的方法,所述方法包括:
接收被控端发送的远程控制请求,所述远程控制请求用于指示控制端对被控端侧的第一对象窗口进行远程控制;
根据所述远程控制请求确定与所述第一对象窗口的内容相同的第二对象窗口;
针对所述第二对象窗口录制键鼠控制脚本,并向所述被控端发送所述键鼠控制脚本,以使得所述被控端通过托管模式对所述键鼠控制脚本进行回放,以实现所述控制端对所述第一对象窗口的远程控制。
B17、根据B16所述的方法,所述远程控制请求中携带有所述第一对象窗口的窗口句柄,所述根据所述远程控制请求确定与所述第一对象窗口的内容相同的第二对象窗口,包括:
根据所述窗口句柄查找所述第二对象窗口。
B18、根据B17所述的方法,在所述针对所述第二对象窗口录制键鼠控制脚本之前,所述方法还包括:
将所述第一对象窗口与所述第二对象窗口进行同步。
B19、根据B18所述的方法,所述将所述第一对象窗口与所述第二对象窗口进行同步,包括:
接收所述被控端发送的所述第一对象窗口的属性信息,以同步所述第一对象窗口和所述第二对象窗口。
B20、根据B18所述的方法,所述将所述第一对象窗口与所述第二对象窗口进行同步,包括:
向所述被控端发送所述第二对象窗口的属性信息,以同步所述第一对象窗口和所述第二对象窗口。
B21、根据B19或B20所述的方法,所述属性信息包括窗口的尺寸信息和位置信息。
B22、根据B18所述的方法,所述将所述第一对象窗口与所述第二对象窗口进行同步,包括:
同步两个对象窗口的首界面。
B23、根据B22所述的方法,所述同步两个对象窗口的首界面,包括:
检测所述第二对象窗口的应用是否已启动;
若没有启动,则启动所述第二对象窗口的应用;
若已启动,则判断当前界面是否为所述首界面;
若所述当前界面不是所述首界面,则将所述当前界面回退到所述首界面。
B24、根据B22所述的方法,在所述同步两个对象窗口的首界面之前,所述方法还包括:
将所述第一对象窗口的应用版本与所述第二对象窗口的应用版本进行同步。
B25、根据B24所述的方法,所述将所述第一对象窗口的应用版本与所述第二对象窗口的应用版本进行同步,包括:
接收所述被控端发送的所述第一对象窗口的应用版本号;
将所述第一对象窗口的应用版本号与所述第二对象窗口的应用版本号进行比较;
若两者应用版本号不同,则将两者应用版本同步为同一个应用版本。
B26、根据B25所述的方法,所述将两者应用版本同步为同一个应用版本,包括:
将所述第二对象窗口的应用版本同步为所述第一对象窗口的应用版本。
B27、根据B25所述的方法,所述将两者应用版本同步为同一个应用版本,包括:
向所述被控端发送所述第二对象窗口的应用版本号,以便所述被控端将所述第一对象窗口的应用版本同步为所述第二对象窗口的应用版本。
B28、根据B24所述的方法,所述将所述第一对象窗口的应用版本与所述第二对象窗口的应用版本进行同步,包括:
将所述第二对象窗口的应用版本号发送给所述被控端,以便同步两者应用版本。
C29、一种远程控制的装置,所述装置包括:
发送单元,用于向控制端发送远程控制请求,所述远程控制请求用于指示所述控制端对被控端侧的第一对象窗口进行远程控制;
接收单元,用于接收所述控制端录制并发送的键鼠控制脚本,所述键鼠控制脚本基于所述控制端侧的第二对象窗口录制而成,所述第二对象窗口为内容与所述第一对象窗口相同的对端侧对象窗口;
回放单元,用于通过托管模式对所述接收单元接收的所述键鼠控制脚本进行回放,以实现所述控制端对所述第一对象窗口的远程控制。
C30、根据C29所述的装置,所述发送单元发送的所述远程控制请求中携带有所述第一对象窗口的窗口句柄,用于所述控制端根据所述第一对象窗口的窗口句柄查找所述第二对象窗口。
C31、根据C30所述的装置,所述装置还包括:
同步单元,用于在所述控制端录制所述键鼠控制脚本之前,将所述第一对象窗口与所述第二对象窗口进行同步。
C32、根据C31所述的装置,所述同步单元,包括:
发送子单元,用于向所述控制端发送所述第一对象窗口的属性信息,以同步所述第一对象窗口和所述第二对象窗口。
C33、根据C31所述的装置,所述同步单元,包括:
接收子单元,用于接收所述控制端发送的所述第二对象窗口的属性信息,以同步所述第一对象窗口和所述第二对象窗口。
C34、根据C32或C33所述的装置,所述同步单元处理的所述属性信息包括窗口的尺寸信息和位置信息。
C35、根据C31所述的装置,所述同步单元,包括:
第一同步子单元,用于同步两个对象窗口的首界面。
C36、根据C35所述的装置,所述第一同步子单元,包括:
检测模块,用于检测所述第一对象窗口的应用是否已启动;
启动模块,用于当所述检测模块检测到所述第一对象窗口的应用没有启动时,启动所述第一对象窗口的应用;
判断模块,用于当所述检测模块检测到所述第一对象窗口的应用已启动时,判断当前界面是否为所述首界面;
回退模块,用于当所述判断模块的判断结果为所述当前界面不是所述首界面时,将所述当前界面回退到所述首界面。
C37、根据C35所述的装置,所述同步单元,包括:
第二同步子单元,用于在所述同步两个对象窗口的首界面之前,将所述第一对象窗口的应用版本与所述第二对象窗口的应用版本进行同步。
C38、根据C37所述的装置,所述第二同步子单元,包括:
发送模块,用于将所述第一对象窗口的应用版本号发送给所述控制端,以便同步两者应用版本。
C39、根据C37所述的装置,所述第二同步子单元,包括:
接收模块,用于接收所述控制端发送的所述第二对象窗口的应用版本号;
比较模块,用于将所述第一对象窗口的应用版本号与所述接收模块接收的所述第二对象窗口的应用版本号进行比较;
同步模块,用于当所述比较模块的比较结果为两者应用版本号不同时,将两者应用版本同步为同一个应用版本。
C40、根据C39所述的装置,所述同步模块,用于将所述第一对象窗口的应用版本同步为所述第二对象窗口的应用版本。
C41、根据C39所述的装置,所述同步模块,用于向所述控制端发送所述第一对象窗口的应用版本号,以便所述控制端将所述第二对象窗口的应用版本同步为所述第一对象窗口的应用版本。
C42、根据C29所述的装置,所述回放单元,用于在离线环境下,通过所述托管模式对所述接收单元接收的所述键鼠控制脚本进行回放。
C43、根据C29所述的装置,所述装置还包括:
检测单元,用于在通过所述托管模式对所述键鼠控制脚本进行回放的过程中,检测用户触发的键鼠操作指令;
屏蔽单元,用于当所述检测单元检测到所述键鼠操作指令时,通过播放引擎接管所述键鼠操作指令,并将所述键鼠操作指令屏蔽。
D44、一种远程控制的装置,所述装置包括:
接收单元,用于接收被控端发送的远程控制请求,所述远程控制请求用于指示控制端对被控端侧的第一对象窗口进行远程控制;
确定单元,用于根据所述接收单元接收的所述远程控制请求确定与所述第一对象窗口的内容相同的第二对象窗口;
录制单元,用于针对所述确定单元确定的所述第二对象窗口录制键鼠控制脚本,并向所述被控端发送所述键鼠控制脚本,以使得所述被控端通过托管模式对所述键鼠控制脚本进行回放,以实现所述控制端对所述第一对象窗口的远程控制。
D45、根据D44所述的装置,所述接收单元接收的所述远程控制请求中携带有所述第一对象窗口的窗口句柄,所述确定单元,用于根据所述窗口句柄查找所述第二对象窗口。
D46、根据D45所述的装置,所述装置还包括:
同步单元,用于在所述针对所述第二对象窗口录制键鼠控制脚本之前,将所述第一对象窗口与所述第二对象窗口进行同步。
D47、根据D46所述的装置,所述同步单元,包括:
接收子单元,用于接收所述被控端发送的所述第一对象窗口的属性信息,以同步所述第一对象窗口和所述第二对象窗口。
D48、根据D46所述的装置,所述同步单元,包括:
发送子单元,用于向所述被控端发送所述第二对象窗口的属性信息,以同步所述第一对象窗口和所述第二对象窗口。
D49、根据D47或D48所述的装置,所述同步单元处理的所述属性信息包括窗口的尺寸信息和位置信息。
D50、根据D46所述的装置,所述同步单元,包括:
第一同步子单元,用于同步两个对象窗口的首界面。
D51、根据D50所述的装置,所述第一同步子单元,包括:
检测模块,用于检测所述第二对象窗口的应用是否已启动;
启动模块,用于当所述检测模块检测到所述第二对象窗口的应用没有启动时,启动所述第二对象窗口的应用;
判断模块,用于当所述检测模块检测到所述第二对象窗口的应用已启动时,判断当前界面是否为所述首界面;
回退模块,用于当所述判断模块的判断结果为所述当前界面不是所述首界面时,将所述当前界面回退到所述首界面。
D52、根据D50所述的装置,所述同步单元,还包括:
第二同步子单元,用于在所述同步两个对象窗口的首界面之前,将所述第一对象窗口的应用版本与所述第二对象窗口的应用版本进行同步。
D53、根据D52所述的装置,所述第二同步子单元,包括:
接收模块,用于接收所述被控端发送的所述第一对象窗口的应用版本号;
比较模块,用于将所述接收模块接收的所述第一对象窗口的应用版本号与所述第二对象窗口的应用版本号进行比较;
同步模块,用于当所述比较模块的比较结果为两者应用版本号不同时,将两者应用版本同步为同一个应用版本。
D54、根据D53所述的装置,所述同步模块,用于将所述第二对象窗口的应用版本同步为所述第一对象窗口的应用版本。
D55、根据D53所述的装置,所述同步模块,用于向所述被控端发送所述第二对象窗口的应用版本号,以便所述被控端将所述第一对象窗口的应用版本同步为所述第二对象窗口的应用版本。
D56、根据D52所述的装置,所述第二同步子单元,包括:
发送模块,用于将所述第二对象窗口的应用版本号发送给所述被控端,以便同步两者应用版本。
E57、一种远程控制的系统,所述系统包括被控端和控制端,其中所述被控端包含如C29至C43中任一项所述的装置,所述控制端包含如D44至D56中任一项所述的装置。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的随身电子防丢设备的状态检测方法、设备、服务器及系统设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。