掌桥专利:专业的专利平台
掌桥专利
首页

指令冲突的解决方法、装置及设备

文献发布时间:2024-04-18 19:52:40


指令冲突的解决方法、装置及设备

技术领域

本申请涉及互联网技术领域,特别是涉及一种指令冲突的解决方法、装置及设备。

背景技术

随着互联网的快速发展,云桌面、远程桌面等虚拟桌面越来越多地应用在办公和教学等场景中。

终端设备上同时运行有本地桌面和虚拟桌面的情况下,当终端设备接收到指令时,若本地桌面和虚拟桌面均配置了该指令,终端设备无法确定是由本地桌面响应该指令,还是由虚拟桌面响应该指令。

为了避免指令冲突,一般设置默认响应方。具体地,若设置的默认响应方为本地桌面,则本地桌面响应指令;若设置的默认响应方为虚拟桌面时,则虚拟桌面响应指令。但是会存在例如用户希望由虚拟桌面响应指令,但由于默认响应方位本地桌面,最终还是由本地桌面响应的情况;或者希望本地桌面响应,但由于默认响应方位虚拟桌面,最终还是由虚拟桌面响应的情况,不够灵活。

发明内容

本申请提供了一种指令冲突的解决方法、装置以及设备,以在指令冲突时,灵活地确定响应指令的响应方。

第一方面提供一种指令冲突的解决方法。该方法可以应用于本地终端。本地终端上运行有本地桌面系统和远程桌面客户端,云桌面客户端所在的远程桌面系统还包括远程桌面服务端。该方法包括:获取第一指令,第一指令为本地桌面系统和远程桌面系统均配置的指令,即第一指令为冲突指令;获取本地终端的显示界面中的焦点窗口对应的第一桌面系统,第一桌面系统为提供焦点窗口的显示内容的桌面系统;若第一桌面系统不能响应第一指令,则利用第二桌面系统响应第一指令,第二桌面系统为本地桌面系统和远程桌面系统中第一桌面系统以外的桌面系统。通过在获取的第一指令为冲突指令时,获取第一桌面系统,第一桌面系统为显示界面中焦点窗口对应的桌面系统,表明第一桌面系统为当前正在使用的桌面系统,进一步根据第一桌面系统能否响应第一指令确定第一指令的最终响应方,在第一桌面系统不能响应第一指令的情况下利用第二桌面系统响应第一指令,从而能够准确、灵活地获得第一指令的响应方。

在一种可能的实现方式中,该方法还包括:若第一桌面系统能够响应第一指令,则利用第一桌面系统响应第一指令。第一桌面系统为当前正在使用的桌面系统,并且第一桌面系统能够响应第一指令,可以认为第一桌面系统为用户期望的响应方,从而准确、灵活地获得第一指令的响应方。

在一种可能的实现方式中,当第一桌面系统为本地桌面系统时,利用第二桌面系统响应第一指令,包括:将第一指令发送至远程桌面服务端,以使得远程桌面服务端响应第一指令。第一桌面系统为本地桌面系统,那么第二桌面系统为远程桌面系统,则需要将第一指令发送至远程桌面系统中的远程服务端,由远程服务器响应第一指令。

在一种可能的实现方式中,当第一桌面系统为远程桌面系统时,利用第二桌面系统响应第一指令,包括:本地桌面系统响应第一指令。

在一种可能的实现方式中,第一桌面系统不能响应第一指令包括:第一桌面系统处于响应了第二指令的状态,第二指令对桌面系统的作用效果与第一指令对桌面系统的作用效果相同。当第一桌面系统已经处于第一指令将要实现的状态时,无需第一桌面系统再次执行第一指令,可以认为第一桌面系统不为用户所期望的响应方,可以由第二桌面系统响应第一指令。

在一种可能的实现方式中,第一桌面系统不能响应第一指令包括:第一桌面系统处于锁定状态,且第一指令不为解除锁定状态的指令。当第一桌面系统被锁定,解除锁定状态的指令外的其他指令均不能被执行,则可以认为第一桌面系统第一桌面系统不为用户所期望的响应方,可以由第二桌面系统响应第一指令。

在一种可能的实现方式中,第一桌面系统不能响应第一指令包括:第一桌面系统不存在第一指令的被执行对象。不存在被执行对象第一指令也就无法被执行,则可以认为第一桌面系统第一桌面系统不为用户所期望的响应方,可以由第二桌面系统响应第一指令。

在一种可能的实现方式中,焦点窗口为当前显示界面中面积最大的窗口,或当前显示界面中位于显示界面中央的窗口,或鼠标光标所在的窗口,或第一桌面系统当前被激活的窗口。焦点窗口为用户当前正在使用,或当前最关注的窗口。通过窗口面积、位置、光标所在窗口或窗口的激活状态能够准确地确定当前显示界面中的焦点窗口。

在一种可能的实现方式中,第一指令包括下述的一种或多种:锁屏指令、最小化指令、最大化指令、打开窗口指令、关闭窗口指令、全选指令、删除指令。

第二方面提供一种指令冲突的解决装置。该装置包括获取模块和第一响应模块。其中,获取模块,用于获取第一指令,第一指令为本地桌面系统和远程桌面系统均配置的指令。获取模块,还用于获取本地终端的显示界面中的焦点窗口对应的第一桌面系统,第一桌面系统为提供焦点窗口的显示内容的桌面系统。第一响应模块,用于在第一桌面系统不能响应第一指令时,利用第二桌面系统响应第一指令,第二桌面系统为本地桌面系统和远程桌面系统中第一桌面系统以外的桌面系统。

在一种可能的实现方式中,该装置还包括第二响应模块。第二响应模块,用于在第一桌面系统能够响应第一指令时,利用第一桌面系统响应第一指令。

在一种可能的实现方式中,第一响应模块具体用于:将第一指令发送至远程桌面服务端,以使得远程桌面服务端响应第一指令。

在一种可能的实现方式中,第一桌面系统不能响应第一指令包括:第一桌面系统处于响应了第二指令的状态,第二指令对桌面系统的作用效果与第一指令对桌面系统的作用效果相同。

在一种可能的实现方式中,第一指令不能响应第一指令包括:第一桌面系统处于锁定状态,且第一指令不为解除锁定状态的指令。

在一种可能的实现方式中,第一桌面系统不能响应第一指令包括:第一桌面系统不存在第一指令的被执行对象。

在一种可能的实现方式中,焦点窗口为当前显示界面中面积最大的窗口,或当前显示界面中位于显示界面中央的窗口,或鼠标光标所在的窗口,或第一桌面系统当前被激活的窗口。

在一种可能的实现方式中,第一指令包括下述的一种或多种:锁屏指令、最小化指令、最大化指令、打开窗口指令、关闭窗口指令、全选指令、删除指令。

第三方面提供一种设备。该设备包括处理器和存储器,处理器耦接存储器,处理器被配置为基于存储在存储器中的指令,使得设备实现第一方面或第一方面的任意可能的实现方式中的方法。

第四方面提供一种计算机可读存储介质,包括指令,当所述指令被处理器执行时,使得设备实现第一方面或第一方面的任意可能的实现方式中的方法。

第五方面提供一种计算机程序产品,计算机程序产品包含程序,当程序在处理器上运行时,实现第一方面或第一方面的任意可能的实现方式中的方法。

附图说明

图1为本申请提供的指令冲突解决系统一实施例的结构示意图;

图2为本申请提供的指令冲突的解决方法第一实施例的流程示意图;

图3为本申请提供的显示界面中的一种焦点窗口的示意图;

图4为本申请提供的显示界面中的另一种焦点窗口的示意图;

图5为本申请提供的指令冲突的解决方法第二实施例的流程示意图;

图6为本申请提供的指令冲突的解决装置一实施例的结构示意图;

图7为本申请提供的指令冲突的解决设备一实施例的结构示意图。

具体实施方式

本申请提供了一种指令冲突的解决方法、装置以及设备,以在指令冲突时,灵活地确定响应冲突指令的响应方。

远程桌面系统一般包括远程桌面客户端和远程桌面服务端。远程桌面客户端安装在本地终端上,远程桌面服务端则运行于远端设备上。当本地终端运行远程桌面客户端,并登录远程桌面服务端时,远程桌面服务端提供的桌面数据通过网络传输到本地终端,并通过远程桌面客户端显示在本地终端的显示屏上。本地终端可以通过远程桌面客户端控制远程桌面系统。远端设备可以是云服务器或受本地终端控制的终端。远程桌面系统例如为云桌面系统或远程终端桌面系统等。

其中,云桌面系统是指在云服务器虚拟出来的桌面系统。云桌面系统的远程桌面客户端为云桌面客户端,远程桌面服务端为云桌面。本地终端通过运行在本地终端的云桌面客户端访问云服务器上的云桌面,云服务器将云桌面提供的桌面数据通过桌面协议传输到本地终端,本地终端在显示屏的云桌面客户端中显示云桌面数据对应的显示界面。本地终端在访问云桌面时,本地终端将接收到的指令通过桌面协议实时传输到云服务器的云桌面,由云桌面处理指令相应的动作后,将处理指令后得到的桌面数据发送到本地终端,这样用户在本地终端上能够像使用本地桌面一样使用云桌面,从而通过本地终端实现对云桌面的控制。

远程终端桌面系统一般应用于远程办公或协同办公场景中,远程终端桌面系统为受本地终端控制的终端的自身的桌面系统。该场景下,本地终端和受控制的终端通过网络连接,受控制的终端设备的显示界面通过网络传输到本地终端并显示。例如,使用家中的电脑A 访问控制位于办公室的电脑B,在电脑A上显示电脑B的显示界面。本地终端控制远程桌面的方式与云桌面类似,故此处不再赘述。

本地桌面系统则是本地终端基于自身的计算资源、存储资源和操作系统运行的桌面系统。

当本地终端上运行远程桌面客户端,并且通过远程桌面客户端登录远程桌面服务端时,本地终端实际上运行有两个桌面系统,即本地桌面系统和远程桌面系统中远程桌面服务端对应的桌面系统。当本地终端接收到指令时,难以判定是由本地桌面系统响应,还是远程桌面系统响应,就会发生指令冲突。

在避免指令冲突的方案中,一般在本地桌面系统和远程桌面系统中设置默认响应方,但这样存在指令不能够被用户预期的桌面系统响应,不够灵活的问题。或者,为本地桌面系统和远程桌面系统配置不冲突的指令,但是会存在指令过多、用户学习成本高和容易混淆不同桌面系统的指令的问题。

因此,本申请提供如下实施例,以在不增加用户学习成本的情况下,在指令冲突时灵活、准确地识别指令的响应方。

如图1所示,图1为本申请提供的指令冲突解决系统一实施例的结构示意图。本实施例中,系统包括本地终端和远端设备。本地终端可以是一个只有显示器、连接键盘、鼠标和网络设备等的瘦终端,也可以是台式电脑、笔记本电脑、平板电脑或智能手机等具有通信功能和显示功能的终端设备。远端设备可以是云服务器,或台式电脑、笔记本电脑、平板电脑或智能手机等终端设备。

本地终端和远端设备通过网络连接,从而本地终端能够向远端设备发送指令,远端设备能够向本地终端发送远程桌面数据。本实施例中,远程桌面系统可以是云桌面系统或远程终端桌面系统等。

本地终端接收到的指令可以是用户通过鼠标、键盘、麦克风、触摸屏、运动传感器或摄像头等输入设备输入的。例如,通过键盘输入的各种快捷键指令,例如ctrl+c、ctrl+v、F5、ctrl+n或win+l等;通过鼠标输入的点击、上翻、下翻、前进或后退等鼠标指令;通过麦克风输入的各种语音指令,例如“锁屏”、“打开任务管理器”、“新建文件”、“打开文件”等语音;通过触摸屏输入的各种手势指令,例如双击屏幕、单击屏幕、上划或下划等;通过摄像头输入的各种用户肢体动作指令或眼部视线指令等;通过运动传感器输入的用户肢体动作等。本地终端或输入设备可以配置快捷键指令、鼠标指令、语音指令、手势指令、用户肢体动作指令或眼部视线指令等指令识别模块,则可以在鼠标、键盘、麦克风、触摸屏或摄像头采集到相应的操作信号之后,识别并转换为可以被计算机理解和执行的指令。

本实施例中,本地桌面系统配置有第一套指令,远程桌面系统中的远程桌面服务端配置有第二套指令。在一些实施方式中,本地桌面系统的第一套指令中的指令可以均为操作系统默认的指令。在另一些实施方式中,第一套指令除了操作系统默认的指令,还可以包括一些用户自定义的指令。

若远端设备为云服务器,远程桌面系统为云桌面系统,为云桌面服务端配置第二套指令的方式有多种。例如,获取本地桌面系统的第一套指令,将第一套指令配置为云桌面服务端的指令。即第一套指令和第二套指令可以相同。还例如,可以在互联网上获取通用的指令,将这些指令配置为云桌面服务端的第二套指令。还例如,云桌面服务端的第二套指令也可以采用操作系统默认的指令。当然,第二套指令中也可以包括一些用户自定义的指令。

若远端设备为终端设备,终端设备上的远程桌面服务端一般已配置有自身的第二套指令。与本地终端的第一套指令类似,远程桌面服务端的第二套指令可以均为操作系统默认的指令,或者还包括一些用户自定义的指令。

可选的,第一套指令和第二套指令中还可以包括至少一个个子集,每一子集对应于一个类型的输入设备相应的指令。示例性地,本地桌面系统配置有快捷键指令和语音指令,第一套指令中包括两个子集,那么其中一个子集用于存储快捷键指令,另一个子集用于存储语音指令。远程桌面服务端同理。

因此,本实施例中第一套指令和第二套指令中至少部分指令是相同的,无需另外设计一套指令使第一套指令和第二套指令完全不同。相同的指令可以既用于本地桌面系统,还可以用于远程桌面系统,用户无需为了避免指令冲突学习复杂的指令。

在本地桌面系统和远程桌面系统配置有相同的指令的情况下,本实施例中,基于本地终端接收指令时本地终端的显示界面中的焦点窗口对应的操作系统能否响应指令,来确定是由本地桌面系统响应指令,还是远程桌面系统响应指令。

如图2所示,图2为本申请提供的指令冲突的解决方法第一实施例的流程示意图。本实施例可由本地终端实施。具体地,本实施例可以由本地终端上运行的远程桌面客户端执行。当然,本实施例也可以由本地终端上运行的其他用于解决指令冲突的模块执行,本申请对此不作限制。需要说明的是,本地终端在执行本实施例的方案时不处于锁屏状态、休眠状态或睡眠状态等未唤醒状态。本地终端在锁屏状态、休眠状态或睡眠状态时接收到的指令均直接由本地终端响应。本实施例包括如下步骤:

S201:获取第一指令,第一指令为所述本地桌面系统和所述远程桌面系统均配置的指令。

第一指令例如是通过本地终端的鼠标、键盘、麦克风、触摸屏、运动传感器或摄像头等输入设备输入的。示例性地,第一指令例如包括锁屏指令、最小化指令、最大化指令、打开窗口指令、关闭窗口指令、全选指令和删除指令等中的一种或多种。可以理解,第一指令可以为任意通过输入设备输入的用于对本地桌面系统或远程桌面系统进行控制的指令,此处不一一举例说明。上述的锁屏指令、最小化指令和最大化指令等根据不同的输入设备其具体形式有所不同。例如,锁屏指令为键盘输入的时候,锁屏指令例如具体为快捷键win+l,锁屏指令为麦克风输入的时候,锁屏指令例如具体为语音“锁屏”等。

本地终端在接收到用户输入的第一指令时,可以先判断第一指令是否为冲突指令,即本地文件系统和远程桌面系统是否均配置了该指令。具体地,远程桌面系统的第二套指令例如存储于本地终端,若第一指令是否同时存在与第一套指令和第二套指令中,则可以确定第一指令为冲突指令;若第一指令只存在于第一套指令或第二套指令中,则可以确认第一指令不为冲突指令,并能够确定哪一桌面系统配置了第一指令。若第一指令不为冲突指令,即本地文件系统和远程桌面系统中只有一者配置了该指令,那么可以确定由配置了该指令的桌面系统执行该指令。若指令为冲突指令,则执行S202,以进一步判断由本地文件系统执行该指令,还是由远程桌面系统执行该指令。

S202:获取本地终端的显示界面中的焦点窗口对应的第一桌面系统,第一桌面系统为提供焦点窗口的显示内容的桌面系统。

其中,第一桌面系统为远程桌面系统和本地桌面系统中的一个桌面系统。

本实施例中,基于本地终端显示界面中的焦点窗口确定本地文件系统和远程桌面系统中的指令执行方。

焦点窗口一般为用户当前关注和使用的窗口,基于焦点窗口能够更加准确地判定用户期望指令由哪一个桌面系统执行。焦点窗口具体可以是当前显示界面的所有窗口中面积最大的窗口。焦点窗口也可以是当前显示界面中位于显示界面中央的窗口。焦点窗口还可以是鼠标光标所在的窗口。焦点窗口还可以是第一桌面系统当前被激活的窗口,即前景窗口 (foreground window)。前景窗口为桌面系统中最前台的窗口,是当前正在被使用的窗口。第一桌面系统同时最多只激活一个窗口,从而可以唯一确定一个焦点窗口。

显示界面是指本地终端当前(接收指令时或接收指令的预设时间段内)用于向用户展示的界面。焦点窗口位于显示界面中央可以是指焦点窗口位于显示界面中的第一预设区域内,如图3所示。或者焦点窗口位于显示界面中央可以是焦点窗口的中心(焦点窗口的对角线的交点)位于显示界面中的第二预设区域内,如图4所示。若位于显示界面中央的窗口不止一个,则可以进一步通过比较窗口的面积大小或鼠标光标所在的窗口等进行判断。

由于远程桌面客户端专门用于显示远程桌面系统中的远程桌面服务端提供的桌面数据,可以通过判断焦点窗口是否为远程桌面客户端对应的窗口确定第一桌面系统:若焦点窗口为远程桌面客户端对应的窗口,则第一桌面系统为远程桌面系统;若焦点窗口不为远程桌面客户端对应的窗口,则第一桌面系统为本地桌面系统。

本实施例中,进一步根据第一桌面系统是否能够响应第一指令来确定第一指令的响应方。若第一桌面系统能够响应第一指令,则确定第一桌面系统响应第一指令,执行S203;若第一桌面系统不能响应第一指令,则确定第二桌面系统响应第一指令,执行S204。其中,第二桌面系统为本地桌面系统和远程桌面系统中第一桌面系统以外的桌面系统。具体而言,若第一桌面系统为远程桌面系统,第二桌面系统则为本地桌面系统,确定远程桌面系统不能响应目标执行后,则利用本地桌面系统响应第一指令;或确定远程桌面系统能够响应目标执行后,则利用远程桌面系统响应第一指令。同理,若第一桌面系统为本地桌面系统,第二桌面系统则为远程桌面系统,确定本地桌面系统不能响应第一指令后,则利用远程桌面系统响应第一指令;或确定本地桌面系统能够响应第一指令后,则利用本地桌面系统响应第一指令。

第一桌面系统不能响应第一指令的情况有多种,例如第一桌面系统不存在第一指令的被执行对象,还例如第一指令不能改变第一桌面系统的桌面状态等。桌面状态是指显示界面的状态。桌面系统保存有当前显示界面上活动窗口和图标等的显示属性,以及整个桌面系统为活动状态,还是锁定状态等,例如窗口的大小、位置、可见性、是否最大化/最小化等,图标的大小和位置等。改变桌面状态包括至少一种下述情况:a.显示界面中窗口、图标的数量、大小或位置等的变化;b.显示界面的切换;c.桌面系统由锁定状态转变为非锁定状态,或由非锁定状态转变为锁定状态等。桌面系统处于锁定状态是指桌面系统处于锁屏/休眠/睡眠状态。第一指令不能改变第一桌面系统的桌面状态例如包括第一桌面系统处于响应了第二指令的状态,或第一桌面系统处于锁定状态,且第一指令不为解除该锁定状态的指令等情况。

以下就第一桌面系统不能响应第一指令的情况的多种可能的情况进行描述:

1.第一桌面系统处于响应了第二指令的状态。

其中,第二指令对桌面系统的作用效果与所述第一指令对所述桌面系统的作用效果相同。换言之,第一桌面系统已经处于第一指令将要实现的状态。第二指令与第一指令可以是相同的指令。当然,第二指令与第一指令也可以是不同的指令。例如,第二指令和第一指令是通过不同输入输出设备输入的但是能实现相同效果的的指令,例如第二指令为通过键盘输入的快捷键ctrl+c,第一指令为通过麦克风输入的语音“复制”,二者都能够实现复制的效果。或者第二指令和第一指令是通过相同的输入设备输入的但能实现相同效果的指令,例如第二指令为键盘输入的快捷键ctrl+z,第一指令为快捷键组合alt+backspace,二者都能实现撤回的效果。

桌面系统的指令中,存在一些指令会改变桌面状态,并使桌面维持在该状态,即若桌面状态已经是执行该指令将要实现的状态,即使再次发出该指令也无法被二次响应,或者再次执行该指令桌面的状态也不会发生改变。本实施例中,将这类指令简称为状态指令。状态指令例如包括锁屏/休眠/睡眠指令、打开运行对话框指令,打开任务管理器指令、最小化所有窗口指令、跳转至页面/行首部或尾部指令等。其中,锁屏指令能够将桌面锁定,并在解除锁屏之前维持桌面锁定的状态;打开任务管理器指令能够在桌面上弹出任务管理器窗口,并在关闭任务管理器窗口之前在桌面上维持打开的状态,等等。

本地终端若确定第一指令为状态指令,则可以获取第一桌面系统当前的桌面状态。获取桌面状态具体例如是获取第一桌面系统当前活动窗口进程、属性,第一桌面系统的系统状态(激活/锁屏/休眠/睡眠)等。根据第一指令能够实现的效果和当前的桌面状态能够确定桌面状态是否已经处于第一指令将要实现的状态。例如,第一指令用于打开任务管理器 (此时S201获取的第一指令尚未被执行),若第一桌面系统中已经存在任务管理器窗口的进程,则确定第一桌面系统的桌面状态已经处于第一指令将要实现的状态。还例如,第一指令用于最大化/最小化当前窗口(即前景窗口),若根据当前窗口的属性确定当前窗口已经为最大化/最小化状态,则确定第一桌面系统的桌面状态已经处于第一指令将要实现的状态。

在一些其他的实施方式中,还可以通过第一桌面系统的历史指令执行记录获取第一桌面系统当前的桌面状态。具体而言,第一桌面系统已执行第二指令,且未执行解除第二指令对应的桌面状态的解除指令,则可以认为处于响应了第二指令的状态。例如,第二指令为打开任务管理器指令,对应的解除指令则为关闭任务管理器指令。

第一桌面系统当前的桌面状态已经为执行第二指令之后的状态,说明第一指令即使被执行也无法改变桌面状态,则可以确定第一桌面系统不能够执行第一指令。例如,若第一桌面系统为远程桌面系统,远程桌面系统已经为锁屏/休眠/睡眠状态,即使再次执行用于锁屏/休眠/睡眠的指令,最终还是锁屏/休眠/睡眠状态;若第一桌面系统已经存在打开的任务管理器窗口,再次执行用于打开任务管理器的指令也不会新增一个任务管理器;若第一桌面系统的所有窗口已经最小化,即使再次执行用于最小化所有窗口的指令,所有窗口仍然是最小化状态。

2.第一桌面系统处于锁定状态,且第一指令不为解除该锁定状态的指令。

处于锁定状态可以是第一桌面系统处于锁屏/休眠/睡眠状态。处于锁定状态还可以是桌面上的窗口存在弹窗导致窗口本身被冻结。举例说明,办公文档窗口若弹出有另存为、打印、登录或保存等弹窗,办公文档窗口则被冻结,若指令用于最小化/关闭/最大化办公文档窗口,办公文档窗口无法依据指令被最小化/关闭/最大化,办公文档窗口会维持原状。

指令一般具有被执行对象,也就是指令的作用对象。若被执行对象处于锁定状态,且第一指令不为解除该锁定状态的指令,那么确定第一指令不能改变桌面状态,第一桌面系统无法响应第一指令。例如,第一桌面系统处于锁屏/休眠/睡眠状态,则整个第一桌面系统处于锁定状态,除了用于解除锁屏/休眠/睡眠状态的指令能够唤醒第一桌面系统,其他指令的被执行对象均为锁定状态,指令不能被执行,桌面状态不会发生变化。用于最小化 /关闭/最大化窗口的指令的被执行对象为第一桌面系统当前活动窗口,若存在活动窗口因为弹窗等原因导致其为锁定状态,那么该指令不能改变桌面状态。

3.第一桌面系统不存在第一指令的被执行对象。

当第一桌面系统中不存在第一指令的被执行对象,第一指令无法被执行,第一桌面系统也就不能响应第一指令。例如,最小化所有窗口指令的被执行对象是所有窗口,关闭当前窗口指令的被执行对象是当前的前景窗口,退出当前应用程序指令的被执行对象是当前运行的应用程序,保存当前文件指令的被执行对象是当前打开的文件等等。若第一桌面系统不存在打开的窗口,即不存在被执行对象,第一桌面系统则不能响应最小化所有窗口指令、关闭当前窗口指令和关闭当前应用程序指令等指令。若第一桌面系统并不存在打开的文件,第一桌面系统不能响应保存当前文件指令。

当第一桌面系统既第一指令满足上述3种情况种的至少一种时,可以认为第一桌面系统不能够响应第一指令。

确定第一桌面系统能够响应第一指令的情况也有多种。例如,第一桌面系统的桌面状态为锁定状态,第一指令为解除锁定状态的指令。还例如,第一桌面系统的桌面状态不为锁定状态,且桌面状态不为已经执行第一指令后的状态,和/或第一桌面系统存在第一指令的被执行对象、被执行对象不处于锁定状态。还例如,第一桌面系统的桌面状态不为锁定状态,第一指令为非状态指令。非状态指令为第一桌面系统配置的指令种除状态指令以外的指令。非状态指令不改变窗口的大小、数量和位置等。非状态指令例如包括复制指令、粘贴指令、刷新指令和撤回指令等。

在一些实施例中,也可以是第一桌面系统不处于锁定状态,即可确定第一桌面系统能够响应第一指令。

当第一桌面系统为远程桌面系统时,本地终端获取远程桌面系统中的远程桌面服务端的桌面状态的方式有多种。本地终端可以根据远远程桌面服务端发送到远程桌面客户端的显示界面获取桌面状态。例如,显示界面的锁屏界面或黑屏,则可以确定远程桌面服务端处于锁屏/休眠/睡眠等锁定状态。当然,本地终端还可以通过访问远端设备的远程桌面服务端获取远程桌面服务端的桌面状态。第一桌面系统为本地桌面系统时,本地终端则可以通过本地桌面系统获取桌面状态。

S203:若第一桌面系统能够响应第一指令,则利用第一桌面系统响应第一指令。

若第一桌面系统为本地桌面系统,则本地桌面系统响应第一指令。

若第一桌面系统为远程桌面系统,则利用远程桌面系统响应第一指令。具体而言,本地终端通过远程桌面客户端向远程桌面服务端发送第一指令,以使远程桌面服务端执行第一指令。

S204:若第一桌面系统不能响应第一指令,则利用第二桌面系统响应第一指令,第二桌面系统为本地桌面系统和远程桌面系统中第一桌面系统以外的桌面系统。

若第一桌面系统为本地桌面系统,第二桌面系统则为远程桌面系统,则利用远程桌面系统响应第一指令。具体而言,本地终端通过远程桌面客户端向远程桌面服务端发送第一指令,以使远程桌面服务端执行第一指令。

若第一桌面系统为远程桌面系统,第二桌面系统则为本地桌面系统,则本地桌面系统响应第一指令。

为使本方案更加易于理解,以第一指令为锁屏指令为例进行说明。本实施例中,本地桌面系统不处于锁屏状态。如图5所示,图5为本申请提供的指令冲突的解决方法第二实施例的流程示意图。

S501:获取锁屏指令。

S502:判断本地终端的显示界面中的焦点窗口对应的桌面系统是否为远程桌面系统。

具体地,可以判断当前的焦点窗口是否为远程桌面客户端的窗口,若焦点窗口为远程桌面客户端的窗口,则可以确认当前的焦点窗口对应的桌面系统为远程桌面系统;若焦点窗口不为远程桌面客户端的窗口,则可以确认当前的焦点窗口对应的桌面系统为本地桌面系统。

若当前的焦点窗口对应的桌面系统为本地桌面系统,执行S504;若当前的焦点窗口对应的桌面系统为远程桌面系统,执行S504。

由于本地桌面系统的桌面状不为锁屏状态,那么锁屏指令能够被本地桌面系统响应,可以利用本地桌面系统能够响应锁屏指令。

S503:判断远程桌面系统能否响应锁屏指令。

具体的,从远端设备获取远程桌面系统中的远程桌面服务端的桌面状态,或者根据远程桌面客户端中显示界面获取远程桌面服务端的桌面状态。若远程桌面系统的桌面状态已经为锁屏状态,说明远程桌面系统已不能响应锁屏指令,则执行S504;若远程桌面系统的桌面状态不为锁屏状态,说明虚拟桌面能够响应锁屏指令,则执行S505。

S504:利用本地桌面系统执行锁屏指令。

S505:利用远程桌面系统执行锁屏指令。

具体地,将锁屏指令发送至远端设备的远程桌面服务端,以使远程桌面服务端执行锁屏指令。

本申请中,通过在获取第一指令后,确定焦点窗口及焦点窗口对应的第一桌面系统后,进一步判断第一桌面系统是否能够响应第一指令,以确定最终执行第一指令的桌面系统,在不为本地终端和远端设备配置两套不同的指令的情况下,灵活地解决指令冲突的问题。进一步地,本申请还结合第一指令的指令类型和第一桌面系统的桌面状态判定响应第一指令的桌面系统,能够更加准确地识别第一指令的响应方。

以上指令冲突的解决方法可以由指令冲突的解决装置实现。如图6所示,图6为本申请提供的指令冲突的解决装置一实施例的结构示意图。指令冲突的解决装置600用于实现上述任意实施例中的指令冲突的解决方法。指令冲突的解决装置600包括:获取模块601和第一响应模块602。

其中,获取模块601,用于获取第一指令,第一指令为本地桌面系统和远程桌面系统均配置的指令。获取模块,还用于获取本地终端的显示界面中的焦点窗口对应的第一桌面系统,第一桌面系统为提供焦点窗口的显示内容的桌面系统。

第一响应模块602,用于在第一桌面系统不能响应第一指令时,利用第二桌面系统响应第一指令,第二桌面系统为本地桌面系统和远程桌面系统中第一桌面系统以外的桌面系统。

在一种可能的实现方式中,该装置还包括第二响应模块603。第二响应模块603,用于在第一桌面系统能够响应第一指令时,利用第一桌面系统响应第一指令。

在一种可能的实现方式中,第一响应模块602具体用于:将第一指令发送至远程桌面服务端,以使得远程桌面服务端响应第一指令。

在一种可能的实现方式中,第一桌面系统不能响应第一指令包括:第一桌面系统处于响应了第二指令的状态,第二指令对桌面系统的作用效果与第一指令对桌面系统的作用效果相同。

在一种可能的实现方式中,第一指令不能响应第一指令包括:第一桌面系统处于锁定状态,且第一指令不为解除锁定状态的指令。

在一种可能的实现方式中,第一桌面系统不能响应第一指令包括:第一桌面系统不存在第一指令的被执行对象。

在一种可能的实现方式中,焦点窗口为当前显示界面中面积最大的窗口,或当前显示界面中位于显示界面中央的窗口,或鼠标光标所在的窗口,或第一桌面系统当前被激活的窗口。

在一种可能的实现方式中,第一指令包括下述的一种或多种:锁屏指令、最小化指令、最大化指令、打开窗口指令、关闭窗口指令、全选指令、删除指令。

本申请还提供一种设备700。如图7所示,图7为本申请提供的设备一实施例的结构示意图。设备700包括:总线702、处理器704、存储器706和通信接口708。处理器704、存储器706和通信接口708之间通过总线702通信。设备700可以是服务器或终端设备。应理解,本申请不限定设备700中的处理器、存储器的个数。

总线702可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线704可包括在设备700各个部件(例如,存储器706、处理器704、通信接口708)之间传送信息的通路。

处理器704可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。

存储器706可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器704还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD) 或固态硬盘(solid state drive,SSD)。

存储器706中存储有可执行的程序代码,处理器704执行该可执行的程序代码以分别实现前述获取模块、第一响应模块和第二响应模块的功能,从而实现上述任意实施例的指令冲突的解决方法。也即,存储器706上存有用于执行上述任意实施例的指令冲突的解决方法的指令。

或者,存储器706中存储有可执行的代码,处理器704执行该可执行的代码以实现前述指令冲突的解决装置的功能,从而实现上述任意实施例的指令冲突的解决方法。也即,存储器706上存有用于执行上述任意实施例的指令冲突的解决方法的指令。

通信接口708使用例如但不限于网络接口卡、收发器一类的收发模块,来实现设备700 与其他设备或通信网络之间的通信。

该设备700可以是瘦终端,也可以是台式电脑、笔记本电脑、平板电脑或智能手机等具有通信功能和显示功能的终端设备。

本申请还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行上述任意实施例的指令冲突的解决方法。

本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述任意实施例的指令冲突的解决方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-only memory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。

相关技术
  • 用以优化数据储存装置的数据储存方法及其数据储存装置
  • 用以检测数据储存装置的数据储存方法及其数据储存装置
  • 用以优化数据储存装置的数据储存方法及其数据储存装置
  • 数据储存装置、存储器操作方法及操作指令执行方法
  • 数据储存装置以及其操作方法
  • 桥接装置与数据储存系统
  • 数据储存装置的测试系统与数据储存装置的测试方法
技术分类

06120116333996