CN105516229B - 一种更新虚拟桌面的方法和装置 - Google Patents

一种更新虚拟桌面的方法和装置 Download PDF

Info

Publication number
CN105516229B
CN105516229B CN201410545561.XA CN201410545561A CN105516229B CN 105516229 B CN105516229 B CN 105516229B CN 201410545561 A CN201410545561 A CN 201410545561A CN 105516229 B CN105516229 B CN 105516229B
Authority
CN
China
Prior art keywords
image
column
thin client
sent
rolling
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.)
Active
Application number
CN201410545561.XA
Other languages
English (en)
Other versions
CN105516229A (zh
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201410545561.XA priority Critical patent/CN105516229B/zh
Priority to EP15777456.3A priority patent/EP3208997A4/en
Priority to PCT/CN2015/073263 priority patent/WO2015154592A1/zh
Priority to US15/519,811 priority patent/US20170242712A1/en
Publication of CN105516229A publication Critical patent/CN105516229A/zh
Application granted granted Critical
Publication of CN105516229B publication Critical patent/CN105516229B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0464Positioning
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally

Abstract

本发明公开了一种更新虚拟桌面的方法和装置,包括:服务器接收到第一滚动命令时,计算第一滚动命令对应的第一偏移量,将计算得到的偏移量和接收到的第一滚动命令中的第一滚动方向发送给瘦客户端;服务器在预设时间内检测是否接收到第二滚动命令,如果没有接收到第二滚动命令,则服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息,将计算得到的第一新出现的像素信息发送给瘦客户端。本发明减少了更新虚拟桌面时对带宽的浪费。

Description

一种更新虚拟桌面的方法和装置
技术领域
本发明涉及云计算技术,尤指一种更新虚拟桌面的方法和装置。
背景技术
虚拟桌面是云计算的一个重要应用,与传统的PC机和笔记本相比,瘦客户端的桌面被运行在远程数据中心的虚拟桌面所代替。虚拟桌面中的内容以图像的方式回传到使用者的屏幕上。其中,瘦客户端是指在客户端-服务器网络体系中的一个基本无需应用程序的计算机终端。
现有的更新虚拟桌面的方法是:当虚拟桌面发生变化时,服务器将变化后的虚拟桌面对应的图像发送给瘦客户端。
现有的更新虚拟桌面的方法中,在虚拟桌面对应的图像发生部分变化时,服务器均要将变化后的虚拟桌面对应的整个图像信息发送给瘦客户端,从而对带宽的占用较大,造成了在更新虚拟桌面时对带宽的浪费。
发明内容
为了解决上述问题,本发明提出了一种更新虚拟桌面的方法和装置,能够减少更新虚拟桌面时对带宽的浪费,从而节约带宽。
为了达到上述目的,本发明提出了一种更新虚拟桌面的方法,应用于服务器,包括:
服务器接收到第一滚动命令时,计算第一滚动命令对应的第一偏移量;
将计算得到的第一偏移量和接收到的第一滚动命令中的第一滚动方向发送给瘦客户端;
服务器在预设时间内检测是否接收到第二滚动命令,如果没有接收到第二滚动命令,则服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息,将计算得到的第一新出现的像素信息发送给瘦客户端。
优选地,当所述服务器在预设时间内接收到第二滚动命令,该方法还包括:
所述服务器将所述当前活动窗口的滚动区域对应的第二图像进行缓存,并根据所述第二图像和所述第一图像,判断出所述当前活动窗口的滚动区域发生变化,根据所述第二图像和所述第一图像计算第二偏移量,将计算得到的第二偏移量和所述第二滚动命令中的第二滚动方向发送给所述瘦客户端;
所述服务器继续执行在预设时间内检测是否接收到第三滚动命令的步骤。
优选地,当所述服务器根据所述第二图像和所述第一图像,判断出所述当前活动窗口的滚动区域没有发生变化时,该方法还包括:
所述服务器根据所述第二图像和所述上一次发送给瘦客户端的图像计算第二新出现的像素信息,将计算得到的第二新出现的像素信息发送给所述瘦客户端。
优选地,所述计算第一滚动命令对应的偏移量包括:
将当前活动窗口的滚动区域对应的第一图像进行缓存;
根据本次缓存的第一图像和上一次发送给瘦客户端的图像,判断出当前活动窗口的滚动区域发生变化时,根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算所述第一偏移量。
优选地,所述服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像,判断当前活动窗口的滚动区域是否发生变化包括:
将所述上一次发送给瘦客户端的图像的每一行或列与所述第一图像对应的行或列进行匹配,若均能够匹配,则判断出所述当前活动窗口的滚动区域没有发生变化;如果所述上一次发送给瘦客户端的图像的某一行或列与所述第一图像对应的行或列不能匹配,则判断出所述当前活动窗口的滚动区域发生变化。
优选地,所述根据第一图像和上一次发送给瘦客户端的图像计算第一偏移量包括:
根据所述第一滚动方向判断出所述滚动区域对应的图像是下移或左移,将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则将所述上一次发送给瘦客户端的图像的第2到(2+x)行或列与所述第一图像的第(n+1)到(n+1+x)行或列进行匹配,若均能够匹配,则所述第一偏移量为(n-1);
其中,n为正整数,x为大于2的正整数。
优选地,当所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第n行或列不能匹配时,该方法还包括:
继续将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第(n+1)行或列进行匹配。
优选地,所述根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一偏移量包括:
根据所述第一滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则将所述上一次发送给瘦客户端的图像的第(m-1-x)到(m-1)行或列与所述第一图像的第(n-1-x)到(n-1)行或列进行匹配,若均能够匹配,则所述第一偏移量为(m-n);
其中,n为正整数,x为大于2的正整数,m为上一次发送给瘦客户端的图像的总行或列数。
优选地,当所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第n行或列不能匹配时,该方法还包括:
继续将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第(n-1)行或列进行匹配。
优选地,所述服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息包括:
根据所述第一滚动方向判断出所述滚动区域对应的图像是下移或左移,将所述上一次发送给瘦客户端的图像的第1行与所述第一图像的第n行进行匹配,若能够匹配,则所述第一新出现的像素信息为所述第一图像的第1到第(n-1)行或列;若不能匹配,则继续将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第(n+1)行或列进行匹配;若所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的所有行均不能匹配,则所述第一新出现的像素信息为所述第一图像;其中,n为正整数,x为大于2的正整数。
优选地,所述服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息包括:
根据所述第一滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则所述第一新出现的像素信息为第一图像的第n到第m行或列;若不能匹配,则继续将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第(n-1)行或列进行匹配;若所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的所有行或列均不能匹配,则所述第一新出现的像素信息为第一图像;其中,m为上一次发送给瘦客户端的图像的总行或列数。
优选地,所述根据第二图像和第一图像计算第二偏移量包括:
根据所述第二滚动方向判断出所述滚动区域对应的图像是下移或左移,将所述第一图像的第1行或列与所述第二图像的第n行或列进行匹配,若能够匹配,则将所述第二图像的第2到(2+x)行或列与所述第一图像的第(n+1)到(n+1+x)行或列进行匹配,若均能够匹配,则所述第二偏移量为(n-1);
其中,n为正整数,x为大于2的正整数。
优选地,当所述第一图像的第1行或列与所述第二图像的第n行或列不能匹配时,该方法还包括:
继续将所述第一图像的第1行或列与所述第二图像的第(n+1)行或列进行匹配。
优选地,所述根据第二图像和第一图像计算第二偏移量包括:
根据所述第二滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述第一图像的第m行或列与所述第二图像的第n行或列进行匹配,若能够匹配,则将所述第一图像的第(m-1-x)到(m-1)行或列与所述第二图像的第(n-1-x)到(n-1)行或列进行匹配,若均能够匹配,则所述第二偏移量为(m-n)。其中,n为正整数,x为大于2的正整数,m为所述第一图像的总行或列数。
优选地,当所述第一图像的第m行或列与所述第二图像的第n行或列不能匹配,该方法还包括:
继续将所述第一图像的第m行或列与所述第二图像的第(n-1)行或列进行匹配。
优选地,当虚拟桌面中的一个窗口由非活动窗口变为所述当前活动窗口时,该方法还包括:
所述服务器获取当前获得窗口的应用类型,在自身保存的应用类型中查找所述当活动前窗口的应用类型,若查找到,则所述服务器将所述当前活动窗口的滚动区域对应的图像进行缓存,并发送给所述瘦客户端。
本发明还提出了一种更新虚拟桌面的方法,应用于瘦客户端,包括:
瘦客户端接收到来自服务器的第一偏移量和第一滚动方向或第二偏移量和第二滚动方向,根据接收到的第一滚动方向或第二滚动方向判断出当前活动窗口的滚动区域是下移或上移,将滚动区域均匀下移或上移,直到下移或上移的行数与接收到的第一偏移量或第二偏移量相等。
优选地,当根据所述接收到的第一滚动方向或第二滚动方向判断出所述当前活动窗口的滚动区域是左移或右移时,该方法还包括:
将所述滚动区域均匀左移或右移,直到左移或右移的列数与所述接收到的第一偏移量或第二偏移量相等。
优选地,当所述瘦客户端接收到来自所述服务器的第一新出现的像素信息或第二新出现的像素信息时,该方法还包括:
将接收的第一新出现的像素信息或第二新出现的像素信息在上移或下移或左移或右移过程中新出现的像素上进行显示。
本发明还提出了一种更新虚拟桌面的装置,至少包括:
计算模块,用于接收到第一滚动命令时,计算第一滚动命令对应的第一偏移量;在预设时间内检测是否接收到第二滚动命令;如果没有接收到第二滚动命令,则根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息;
发送模块,用于将计算得到的第一偏移量和接收到的第一滚动命令中的第一滚动方向发送给瘦客户端;将计算得到的第一新出现的像素信息发送给瘦客户端。
优选地,所述计算模块还用于:
在预设时间内接收到第二滚动命令,将所述当前活动窗口的滚动区域对应的第二图像进行缓存;并根据所述第二图像和所述第一图像,判断出所述当前活动窗口的滚动区域发生变化,根据所述第二图像和所述第一图像计算第二偏移量;
在所述发送模块将计算得到的第二偏移量和所述第二滚动命令中的第二滚动方向发送给瘦客户端后,所述计算模块还用于:
继续在预设时间内检测是否接收到第三滚动命令;
所述发送模块还用于:
将计算得到的第二偏移量和所述第二滚动方向发送给所述瘦客户端。
优选地,所述计算模块还用于:
根据所述第二图像和所述第一图像,判断出所述当前活动窗口的滚动区域没有发生变化,根据所述第二图像和所述上一次发送给瘦客户端的图像计算第二新出现的像素信息;
所述发送模块还用于:
将计算得到的第二新出现的像素信息发送给所述瘦客户端。
优选地,所述计算模块计算第一滚动命令对应的第一偏移量的功能具体用于:
将当前活动窗口的滚动区域对应的第一图像进行缓存;服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像,判断出当前活动窗口的滚动区域发生变化时,根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算所述第一偏移量。
优选地,所述计算模块根据第一图像和上一次发送给瘦客户端的图像,判断当前活动窗口的滚动区域是否发生变化的功能具体用于:
将所述上一次发送给瘦客户端的图像的每一行或列与所述第一图像对应的行或列进行匹配,若均能够匹配,则判断出所述当前活动窗口的滚动区域没有发生变化;如果所述上一次发送给瘦客户端的图像的某一行或列与所述第一图像对应的行或列不能匹配,则判断出所述当前活动窗口的滚动区域发生变化。
优选地,所述计算模块根据第一图像和上一次发送给瘦客户端的图像计算第一偏移量的功能具体用于:
根据所述第一滚动方向判断出所述滚动区域对应的图像是下移或左移,将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则将所述上一次发送给瘦客户端的图像的第2到(2+x)行或列与所述第一图像的第(n+1)到(n+1+x)行或列进行匹配,若均能够匹配,则所述第一偏移量为(n-1);
其中,n为正整数,x为大于2的正整数。
优选地,所述计算模块根据第一图像和上一次发送给瘦客户端的图像计算偏第一移量的功能具体用于:
根据所述第一滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则将所述上一次发送给瘦客户端的图像的第(m-1-x)到(m-1)行或列与所述第一图像的第(n-1-x)到(n-1)行或列进行匹配,若均能够匹配,则所述第一偏移量为(m-n);
其中,n为正整数,x为大于2的正整数,m为上一次发送给瘦客户端的图像的总行或列数。
优选地,所述计算模块根据第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息的功能具体用于:
根据所述第一滚动方向判断出所述滚动区域对应的图像是下移或左移,将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则所述第一新出现的像素信息为所述第一图像的第1到第(n-1)行或列;若不能匹配,则继续将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第(n+1)行或列进行匹配;若所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的所有行或列均不能匹配,则所述第一新出现的像素信息为所述第一图像;其中,n为正整数,x为大于2的正整数。
优选地,所述计算模块根据第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息的功能具体用于:
根据所述第一滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则所述第一新出现的像素信息为第一图像的第n到第m行或列;若不能匹配,则继续将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第(n-1)行或列进行匹配;若所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的所有行或列均不能匹配,则所述第一新出现的像素信息为第一图像;其中,m为上一次发送给瘦客户端的图像的总行或列数。
优选地,所述计算模块根据第二图像和第一图像计算第二偏移量的功能具体用于:
根据所述第二滚动方向判断出所述滚动区域对应的图像是下移或左移,将所述第一图像的第1行或列与所述第二图像的第n行或列进行匹配,若能够匹配,则将所述第一图像的第2到(2+x)行或列与所述第二图像的第(n+1)到(n+1+x)行或列进行匹配,若均能够匹配,则所述第二偏移量为(n-1);
其中,n为正整数,x为大于2的正整数。
优选地,所述计算模块根据第二图像和第一图像计算第二偏移量的功能具体用于:
根据所述第二滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述第一图像的第m行或列与所述第二图像的第n行或列进行匹配,若能够匹配,则将所述第一图像的第(m-1-x)到(m-1)行或列与所述第二图像的第(n-1-x)到(n-1)行或列进行匹配,若均能够匹配,则所述第二偏移量为(m-n)。其中,n为正整数,x为大于2的正整数,m为所述第一图像的总行或列数。
优选地,所述计算模块还用于:
检测到虚拟桌面中的一个窗口由非活动窗口变为所述当前活动窗口,获取当前获得窗口的应用类型,在自身保存的应用类型中查找所述当活动前窗口的应用类型,若查找到,则将所述当前活动窗口的滚动区域对应的图像进行缓存,并发送给所述瘦客户端。
本发明还提出了一种更新虚拟桌面的装置,至少包括:
接收模块,用于接收到来自服务器的第一偏移量和第一滚动方向或第二偏移量和第二滚动方向;
移动模块,用于根据接收到的第一滚动方向或第二滚动方向判断出当前活动窗口的滚动区域是下移或上移,将滚动区域均匀下移或上移,直到下移或上移的行数与接收到的第一偏移量或第二偏移量相等。
优选地,所述移动模块还用于:
根据所述接收到的第一滚动方向或第二滚动方向判断出所述当前活动窗口的滚动区域是左移或右移,将所述滚动区域均匀左移或右移,直到左移或右移的列数与所述接收到的第一偏移量或第二偏移量相等。
优选地,所述接收模块还用于:
接收到来自所述服务器的第一新出现的像素信息或第二新出现的像素信息;
所述瘦客户端还包括:
显示模块,用于将接收的第一新出现的像素信息或第二新出现的像素信息在上移或下移或左移或右移过程中新出现的像素上进行显示。
与现有技术相比,本发明包括:服务器接收到第一滚动命令时,计算第一滚动命令对应的第一偏移量,将计算得到的第一偏移量和接收到的第一滚动命令中的第一滚动方向发送给瘦客户端;服务器在预设时间内检测是否接收到第二滚动命令,如果没有接收到第二滚动命令,则服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息,将计算得到的第一新出现的像素信息发送给瘦客户端。通过本发明的方案,服务器在接收到第一滚动命令时,只将第一偏移量和第一滚动方向发送给瘦客户端,然后在预设时间内继续检测是否接收到第二滚动命令,如果没有接收到第二滚动命令,则服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息,将计算得到的第一新出现的像素信息发送给瘦客户端,而不需要在每次接收到滚动命令时都将变化后的虚拟桌面对应的图像发送给瘦客户端,减少了虚拟桌面对带宽的浪费,从而节约了带宽。
附图说明
下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。
图1为本发明的应用于服务器的更新虚拟桌面的方法的流程图;
图2为本发明的更新虚拟桌面的方法的实施例的流程图;
图3为本发明的更新虚拟桌面的装置的结构组成示意图;
图4为本发明的另一种更新虚拟桌面的装置的结构组成示意图。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。
参见图1,本发明提出了一种更新虚拟桌面的方法,应用于服务器,包括:
步骤100、服务器接收到第一滚动命令时,计算第一滚动命令对应的第一偏移量。
本步骤中,计算第一滚动命令对应的第一偏移量包括:
将当前活动窗口的滚动区域对应的第一图像进行缓存;根据本次缓存的第一图像和上一次发送给瘦客户端的图像,判断出当前活动窗口的滚动区域发生变化,根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一偏移量。
本步骤中,第一滚动命令可以是鼠标中键命令、或鼠标移动和鼠标左键按下命令、或手指在触摸屏上的滑动等。第一滚动命令中还包括第一滚动方向。
本步骤中,如果服务器没有接收到滚动命令,则结束本流程。
其中,当判断出当前活动窗口的滚动区域没有发生变化,则结束本流程。
其中,服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像,判断当前活动窗口的滚动区域是否发生变化包括:
将上一次发送给瘦客户端的图像的每一行(或列)与本次缓存的第一图像对应的行(或列)进行匹配,若均能够匹配,则判断出当前活动窗口的滚动区域没有发生变化;如果上一次发送给瘦客户端的图像的某一行(或列)与本次缓存的第一图像对应的行(或列)不能匹配,则判断出当前活动窗口的滚动区域发生变化。
其中,上一次发送给瘦客户端的图像的某一行(或列)与本次缓存的第一图像对应的行(或列)能够匹配是指上一次发送给瘦客户端的图像的某一行(或列)的每一个像素与本次缓存的第一图像对应的行(或列)对应的像素均相同。
其中,根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一偏移量包括:
根据第一滚动方向判断出滚动区域对应的图像是下移(或左移),将上一次发送给瘦客户端的图像的第1行(或列)与本次缓存的第一图像的第n行进行匹配,若能够匹配,则将上一次发送给瘦客户端的图像的第2到(2+x)行(或列)与本次缓存的第一图像的第(n+1)到(n+1+x)行(或列)进行匹配,若均能够匹配,则第一偏移量为(n-1)。其中,n为正整数,x为大于2的正整数。
其中,上一次发送给瘦客户端的图像的第1行(或列)与本次缓存的第一图像的第n行(或列)能够匹配是指上一次发送给瘦客户端的图像的第1行(或列)的每一个像素与本次缓存的第一图像的第n行(或列)对应的像素均相同。
其中,若上一次发送给瘦客户端的图像的第1行(或列)与本次缓存的第一图像的第n行(或列)不能匹配,则继续将上一次发送给瘦客户端的图像的第1行(或列)与本次缓存的第一图像的第(n+1)行(或列)进行匹配。
根据第一滚动方向判断出滚动区域对应的图像是上移(或右移),将上一次发送给瘦客户端的图像的第m行(或列)与本次缓存的第一图像的第n行(或列)进行匹配,若能够匹配,则将上一次发送给瘦客户端的图像的第(m-1-x)到(m-1)行(或列)与本次缓存的第一图像的第(n-1-x)到(n-1)行(或列)进行匹配,若均能够匹配,则第一偏移量为(m-n)。其中,n为正整数,x为大于2的正整数,m为上一次发送给瘦客户端的图像的总行(或列)数。
其中,若上一次发送给瘦客户端的图像的第m行(或列)与本次缓存的第一图像的第n行(或列)不能匹配,则继续将上一次发送给瘦客户端的图像的第m行(或列)与本次缓存的第一图像的第(n-1)行(或列)进行匹配。
步骤101、将计算得到的第一偏移量和接收到的第一滚动命令中的第一滚动方向发送给瘦客户端。
步骤102、服务器在预设时间内检测是否接收到第二滚动命令,如果没有接收到第二滚动命令,则服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息,将计算得到的第一新出现的像素信息发送给瘦客户端。
本步骤中,当服务器在预设时间内接收到第二滚动命令,服务器将当前活动窗口的滚动区域对应的第二图像进行缓存,并根据第二图像和第一图像,判断出当前活动窗口的滚动区域发生变化,根据第二图像和第一图像计算第二偏移量,将计算得到的第二偏移量和第二滚动命令中的第二滚动方向发送给所述瘦客户端;服务器继续执行在预设时间内检测是否接收到第三滚动命令的步骤。
其中,当服务器根据第二图像和所述第一图像,判断出当前活动窗口的滚动区域没有发生变化时,服务器根据第二图像和上一次发送给瘦客户端的图像计算第二新出现的像素信息,将计算得到的第二新出现的像素信息发送给瘦客户端。
本步骤中,服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息包括:
根据第一滚动方向判断出滚动区域对应的图像是下移(或左移),将上一次发送给瘦客户端的图像的第1行(或列)与本次缓存的第一图像的第n行(或列)进行匹配,若能够匹配,则第一新出现的像素信息为本次缓存的图像的第1到第(n-1)行(或列);若不能匹配,则继续将上一次发送给瘦客户端的图像的第1行(或列)与本次缓存的第一图像的第(n+1)行(或列)进行匹配;若上一次发送给瘦客户端的图像的第1行(或列)与本次缓存的第一图像的所有行均不能匹配,则第一新出现的像素信息为本次缓存的图像。其中,n为正整数,x为大于2的正整数。
根据第一滚动方向判断出滚动区域对应的图像是上移(或右移),将上一次发送给瘦客户端的图像的第m行(或列)与本次缓存的第一图像的第n行(或列)进行匹配,若能够匹配,则第一新出现的像素信息为本次缓存的图像的第n到第m行(或列);若不能匹配,则继续将上一次发送给瘦客户端的第一图像的第m行(或列)与本次缓存的图像的第(n-1)行(或列)进行匹配;若上一次发送给瘦客户端的图像的第m行(或列)与本次缓存的第一图像的所有行均不能匹配,则第一新出现的像素信息为本次缓存的图像。其中,m为上一次发送给瘦客户端的图像的总行(或列)数。
本步骤中,如果接收到第二滚动命令,则服务器将当前活动窗口的滚动区域对应的第二图像进行缓存,并根据第二图像和第一图像,判断出当前活动窗口的滚动区域发生变化,根据第二图像和第一图像计算第二偏移量,将计算得到的第二偏移量和第二滚动方向发送给瘦客户端;服务器继续执行在预设时间内检测是否接收到第三滚动命令的步骤。
其中,如果根据第二图像和第一图像,判断出当前活动窗口的滚动区域没有发生变化,则服务器根据第二图像和上一次发送给瘦客户端的图像计算第二新出现的像素信息,将计算得到的第二新出现的像素信息发送给瘦客户端。
其中,服务器根据本次缓存的第二图像和第一图像,判断当前活动窗口的滚动区域是否发生变化包括:
将第二图像的每一行(或列)与本次缓存的第一图像对应的行(或列)进行匹配,若均能够匹配,则判断出当前活动窗口的滚动区域没有发生变化;如果第二图像的某一行(或列)与本次缓存的第一图像对应的行(或列)不能匹配,则判断出当前活动窗口的滚动区域发生变化。
其中,第二图像的某一行与本次缓存的第一图像对应的行能够匹配是指第二图像的某一行(或列)的每一个像素与本次缓存的第一图像对应的行(或列)对应的像素均相同。
其中,根据第二图像和第一图像计算第二偏移量包括:
根据第二滚动方向判断出滚动区域对应的图像是下移(或左移),将第一图像的第1行(或列)与第二图像的第n行(或列)进行匹配,若能够匹配,则将第一图像的第2到(2+x)行(或列)与第二图像的第(n+1)到(n+1+x)行(或列)进行匹配,若均能够匹配,则第二偏移量为(n-1)。
其中,第一图像的第1行(或列)与第二图像的第n行(或列)能够匹配是指第一图像的第1行(或列)的每一个像素与第二图像的第n行(或列)对应的像素均相同。
其中,若第一图像的第1行(或列)与第二图像的第n行(或列)不能匹配,则继续将第一图像的第1行(或列)与第二图像的第(n+1)行(或列)进行匹配。
根据第二滚动方向判断出滚动区域对应的图像是上移(或右移),将第一图像的第m行(或列)与第二图像的第n行(或列)进行匹配,若能够匹配,则将第一图像的第(m-1-x)到(m-1)行(或列)与第二图像的第(n-1-x)到(n-1)行(或列)进行匹配,若均能够匹配,则第二偏移量为(m-n)。其中,n为正整数,x为大于2的正整数,m为第一图像的总行(或列)数。
其中,若第一图像的第m行(或列)与第二图像的第n行(或列)不能匹配,则继续将第一图像的第m行(或列)与第二图像的第(n-1)行(或列)进行匹配。
本发明的方法中,当虚拟桌面中的一个窗口由非活动窗口变为当前活动窗口时,还包括:
服务器获取当前获得窗口的应用类型,在自身保存的应用类型中查找当活动前窗口的应用类型,若查找到,则服务器将当前活动窗口的滚动区域对应的图像进行缓存,并发送给瘦客户端。
其中,若查找不到,则采用现有的方法将变化后的屏幕对应的图像发送给瘦客户端。
其中,可以从当前活动窗口标题中的字符串获取当前获得窗口的应用类型。
其中,应用类型可以是Microsoft Word、或Microsoft Excel、或记事本或浏览器等。
本发明提出了一种更新虚拟桌面的方法,应用于瘦客户端,包括:
瘦客户端接收到来自服务器的第一偏移量和第一滚动方向或第二偏移量和第二滚动方向,根据接收到的第一滚动方向或第二滚动方向判断出当前活动窗口的滚动区域是下移(或上移),将滚动区域均匀下移(或上移),直到下移(或上移)的行数与接收到的第一偏移量或第二偏移量相等。
其中,若根据接收到的第一滚动方向或第二滚动方向判断出当前活动窗口的滚动区域是右移(或左移),则将滚动区域均匀右移(或左移),直到右移(或左移)的列数与接收到的第一偏移量或第二偏移量相等。
其中,下移(或上移)过程中,滚动区域上面(或上面)的新出现的像素采用纯色(例如白色)填补,左移(或右移)过程中,滚动区域左面(或右面)的新出现的像素采用纯色(例如白色)填补。
当瘦客户端接收到来自服务器的第一新出现的像素信息或第二新出现的像素信息时,该方法还包括:
将接收的第一新出现的像素信息或第二新出现的像素信息在上移或下移或左移或右移过程中新出现的像素上进行显示。
下面通过具体实施例详细说明本发明的方法,参见图2,该方法包括:
步骤200、服务器接收到第一滚动命令时,计算第一滚动命令对应的第一偏移量。
步骤201、服务器将计算得到的第一偏移量和接收到的第一滚动命令中的第一滚动方向发送给瘦客户端。
步骤202、瘦客户端接收到第一偏移量和第一滚动方向,根据接收到的第一滚动方向判断出当前活动窗口的滚动区域是上移或下移,将滚动区域均匀上移或下移,直到上移或下移的行数与接收到的第一偏移量相等。
本步骤中,当根据接收到的第一滚动方向判断出当前活动窗口的滚动区域是左移或右移,将滚动区域均匀左移或右移,直到左移或右移的行数与接收到的第一偏移量相等。
步骤203、服务器在预设时间内检测是否接收到第二滚动命令,如果没有接收到第二滚动命令,则执行步骤204;如果接收到第二滚动命令,则执行步骤206。
步骤204、服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息,将计算得到的第一新出现的像素信息发送给瘦客户端。
步骤205、瘦客户端将接收到的第一新出现的像素信息在上移或下移或左移或右移过程中新出现的像素上进行显示。
步骤206、服务器将当前活动窗口的滚动区域对应的第二图像进行缓存,并根据第二图像和第一图像,判断出当前活动窗口的滚动区域是否发生变化,如果发生变化,则执行步骤207;如果不发生变化,则执行步骤209。
步骤207、根据第二图像和第一图像计算第二偏移量,将计算得到的第二偏移量和第二滚动命令中的第二滚动方向发送给所述瘦客户端;并执行步骤203。
步骤208、瘦客户端接收到第二偏移量和第二滚动方向,根据接收到的第二滚动方向判断出当前活动窗口的滚动区域是上移或下移,将滚动区域均匀上移或下移,直到上移或下移的行数与接收到的第二偏移量相等。
本步骤中,当根据接收到的第二滚动方向判断出当前活动窗口的滚动区域是左移或右移,将滚动区域均匀左移或右移,直到左移或右移的行数与接收到的第二偏移量相等。
步骤209、服务器根据第二图像和上一次发送给瘦客户端的图像计算第二新出现的像素信息,将计算得到的第二新出现的像素信息发送给瘦客户端。
步骤210、瘦客户端将接收到的第二新出现的像素信息在上移或下移或左移或右移过程中新出现的像素上进行显示。
参见图3,本发明还提出了一种更新虚拟桌面的装置,至少包括:
计算模块300,用于接收到第一滚动命令时,计算第一滚动命令对应的第一偏移量;在预设时间内检测是否接收到第二滚动命令;如果没有接收到第二滚动命令,则根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息;
发送模块301,用于将计算得到的第一偏移量和接收到的第一滚动命令中的第一滚动方向发送给瘦客户端;将计算得到的第一新出现的像素信息发送给瘦客户端。
本发明的装置中,计算模块300还用于:
在预设时间内接收到第二滚动命令,将所述当前活动窗口的滚动区域对应的第二图像进行缓存;并根据所述第二图像和所述第一图像,判断出所述当前活动窗口的滚动区域发生变化,根据所述第二图像和所述第一图像计算第二偏移量;
在所述发送模块301将计算得到的第二偏移量和所述第二滚动命令中的第二滚动方向发送给瘦客户端后,所述计算模块300还用于:
继续在预设时间内检测是否接收到第三滚动命令;
所述发送模块301还用于:
将计算得到的第二偏移量和所述第二滚动方向发送给所述瘦客户端。
本发明的装置中,计算模块300还用于:
根据第二图像和第一图像,判断出当前活动窗口的滚动区域没有发生变化,根据第二图像和上一次发送给瘦客户端的图像计算第二新出现的像素信息;
发送模块301还用于:
将计算得到的第二新出现的像素信息发送给瘦客户端。
本发明的装置中,计算模块300计算第一滚动命令对应的第一偏移量的功能具体用于:
将当前活动窗口的滚动区域对应的第一图像进行缓存;服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像,判断出当前活动窗口的滚动区域发生变化时,根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算所述第一偏移量。
本发明的装置中,所述计算模块300根据第一图像和上一次发送给瘦客户端的图像,判断当前活动窗口的滚动区域是否发生变化的功能具体用于:
将所述上一次发送给瘦客户端的图像的每一行或列与所述第一图像对应的行或列进行匹配,若均能够匹配,则判断出所述当前活动窗口的滚动区域没有发生变化;如果所述上一次发送给瘦客户端的图像的某一行或列与所述第一图像对应的行或列不能匹配,则判断出所述当前活动窗口的滚动区域发生变化。
本发明的装置中,计算模块300根据第二图像和第一图像计算第二偏移量的功能具体用于:
根据第二滚动方向判断出滚动区域对应的图像是下移(或左移),将第一图像的第1行(或列)与第二图像的第n行(或列)进行匹配,若能够匹配,则将第一图像的第2到(2+x)行(或列)与第二图像的第(n+1)到(n+1+x)行(或列)进行匹配,若均能够匹配,则第二偏移量为(n-1);
其中,n为正整数,x为大于2的正整数。
本发明的装置中,计算模块300根据第二图像和第一图像计算第二偏移量的功能具体用于:
根据第二滚动方向判断出滚动区域对应的图像是上移(或右移),将第一图像的第m行(或列)与第二图像的第n行(或列)进行匹配,若能够匹配,则将第一图像的第(m-1-x)到(m-1)行(或列)与第二图像的第(n-1-x)到(n-1)行(或列)进行匹配,若均能够匹配,则第二偏移量为(m-n)。其中,n为正整数,x为大于2的正整数,m为第一图像的总行(或列)数。
本发明的装置中,计算模块300根据第一图像和上一次发送给瘦客户端的图像,判断当前活动窗口的滚动区域是否发生变化的功能具体用于:
将上一次发送给瘦客户端的图像的每一行(或列)与第一图像对应的行(或列)进行匹配,若均能够匹配,则判断出当前活动窗口的滚动区域没有发生变化;如果上一次发送给瘦客户端的图像的某一行(或列)与第一图像对应的行(或列)不能匹配,则判断出当前活动窗口的滚动区域发生变化。
本发明的装置中,计算模块300根据第一图像和上一次发送给瘦客户端的图像计算第一偏移量的功能具体用于:
根据第一滚动方向判断出滚动区域对应的图像是下移(或左移),将上一次发送给瘦客户端的图像的第1行(或列)与第一图像的第n行(或列)进行匹配,若能够匹配,则将上一次发送给瘦客户端的图像的第2到(2+x)行(或列)与第一图像的第(n+1)到(n+1+x)行(或列)进行匹配,若均能够匹配,则第一偏移量为(n-1);
其中,n为正整数,x为大于2的正整数。
本发明的装置中,计算模块300根据第一图像和上一次发送给瘦客户端的图像计算第一偏移量的功能具体用于:
根据第一滚动方向判断出滚动区域对应的图像是上移(或右移),将上一次发送给瘦客户端的图像的第m行(或列)与第一图像的第n行(或列)进行匹配,若能够匹配,则将上一次发送给瘦客户端的图像的第(m-1-x)到(m-1)行(或列)与第一图像的第(n-1-x)到(n-1)行(或列)进行匹配,若均能够匹配,则第一偏移量为(m-n);
其中,n为正整数,x为大于2的正整数,m为上一次发送给瘦客户端的图像的总行(或列)数。
本发明的装置中,计算模块300还用于:
在预设时间内没有接收到滚动命令,或者判断模块根据第一图像和上一次缓存的图像,判断出当前活动窗口的滚动区域没有发生变化,根据第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息,将计算得到的第一新出现的像素信息发送给瘦客户端。
本发明的装置中,计算模块300根据第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息的功能具体用于:
根据第一滚动方向判断出滚动区域对应的图像是下移(或左移),将上一次发送给瘦客户端的图像的第1行(或列)与第一图像的第n行(或列)进行匹配,若能够匹配,则第一新出现的像素信息为第一图像的第1到第(n-1)行(或列);若不能匹配,则继续将上一次发送给瘦客户端的图像的第1行(或列)与第一图像的第(n+1)行(或列)进行匹配;若上一次发送给瘦客户端的图像的第1行(或列)与第一图像的所有行(或列)均不能匹配,则第一新出现的像素信息为第一图像;其中,n为正整数,x为大于2的正整数。
本发明的装置中,计算模块300根据第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息的功能具体用于:
根据第一滚动方向判断出滚动区域对应的图像是上移(或右移),将上一次发送给瘦客户端的图像的第m行(或列)与第一图像的第n行(或列)进行匹配,若能够匹配,则第一新出现的像素信息为第一图像的第n到第m行(或列);若不能匹配,则继续将上一次发送给瘦客户端的图像的第m行(或列)与第一图像的第(n-1)行(或列)进行匹配;若上一次发送给瘦客户端的图像的第m行(或列)与第一图像的所有行(或列)均不能匹配,则第一新出现的像素信息为第一图像;其中,m为上一次缓存的图像的总行(或列)数。
本发明的装置中,计算模块300还用于:
检测到虚拟桌面中的一个窗口由非活动窗口变为当前活动窗口,获取当前获得窗口的应用类型,在自身保存的应用类型中查找当活动前窗口的应用类型,若查找到,则将当前活动窗口的滚动区域对应的图像进行缓存,并发送给瘦客户端。
参见图4,本发明还提出了一种更新虚拟桌面的装置,至少包括:
接收模块400,用于接收到来自服务器的第一偏移量和第一滚动方向或第二偏移量和第二滚动方向;
移动模块401,用于根据接收到的第一滚动方向或第二滚动方向判断出当前活动窗口的滚动区域是下移(或上移),将滚动区域均匀下移(或上移),直到下移(或上移)的行数与接收到的第一偏移量或第二偏移量相等。
本发明的装置中,移动模块401还用于:
根据接收到的第一滚动方向或第二滚动方向判断出当前活动窗口的滚动区域是左移(或右移),将滚动区域均匀左移(或右移),直到左移(或右移)的列数与接收到的第一偏移量或第二偏移量相等。
本发明的装置中,接收模块400还用于:
接收到来自服务器的第一新出现的像素信息或第二新出现的像素信息;
瘦客户端还包括:
显示模块402,用于将接收的第一新出现的像素信息或第二新出现的像素信息在上移或下移或左移或右移过程中新出现的像素上进行显示。
需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。

Claims (26)

1.一种更新虚拟桌面的方法,其特征在于,应用于服务器,包括:
服务器接收到第一滚动命令时,计算第一滚动命令对应的第一偏移量;
将计算得到的第一偏移量和接收到的第一滚动命令中的第一滚动方向发送给瘦客户端;
服务器在预设时间内检测是否接收到第二滚动命令,如果没有接收到第二滚动命令,则服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息,将计算得到的第一新出现的像素信息发送给瘦客户端;
其中,所述计算第一滚动命令对应的第一偏移量包括:将当前活动窗口的滚动区域对应的第一图像进行缓存;根据本次缓存的第一图像和上一次发送给瘦客户端的图像,判断出当前活动窗口的滚动区域发生变化时,根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算所述第一偏移量;
所述服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息包括:根据所述第一滚动方向判断出滚动区域对应的图像是下移或左移,将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则所述第一新出现的像素信息为所述第一图像的第1到第(n-1)行或列;若不能匹配,则继续将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第(n+1)行或列进行匹配;若所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的所有行均不能匹配,则所述第一新出现的像素信息为所述第一图像;其中,n为正整数,x为大于2的正整数;或者,
所述服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息包括:根据所述第一滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则所述第一新出现的像素信息为第一图像的第n到第m行或列;若不能匹配,则继续将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第(n-1)行或列进行匹配;若所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的所有行或列均不能匹配,则所述第一新出现的像素信息为第一图像;其中,m为上一次发送给瘦客户端的图像的总行或列数。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
当所述服务器在预设时间内接收到第二滚动命令,所述服务器将当前活动窗口的滚动区域对应的第二图像进行缓存,并根据所述第二图像和所述第一图像,判断出所述当前活动窗口的滚动区域发生变化,根据所述第二图像和所述第一图像计算第二偏移量,将计算得到的第二偏移量和所述第二滚动命令中的第二滚动方向发送给所述瘦客户端;
当所述服务器在预设时间内接收到第二滚动命令,所述服务器继续执行在预设时间内检测是否接收到第三滚动命令的步骤。
3.根据权利要求2所述的方法,其特征在于,该方法还包括:
当所述服务器根据所述第二图像和所述第一图像,判断出所述当前活动窗口的滚动区域没有发生变化时,所述服务器根据所述第二图像和所述上一次发送给瘦客户端的图像计算第二新出现的像素信息,将计算得到的第二新出现的像素信息发送给所述瘦客户端。
4.根据权利要求1所述的方法,其特征在于,所述服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像,判断当前活动窗口的滚动区域是否发生变化包括:
将所述上一次发送给瘦客户端的图像的每一行或列与所述第一图像对应的行或列进行匹配,若均能够匹配,则判断出所述当前活动窗口的滚动区域没有发生变化;如果所述上一次发送给瘦客户端的图像的某一行或列与所述第一图像对应的行或列不能匹配,则判断出所述当前活动窗口的滚动区域发生变化。
5.根据权利要求1所述的方法,其特征在于,所述根据第一图像和上一次发送给瘦客户端的图像计算第一偏移量包括:
根据所述第一滚动方向判断出所述滚动区域对应的图像是下移或左移,将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则将所述上一次发送给瘦客户端的图像的第2到(2+x)行或列与所述第一图像的第(n+1)到(n+1+x)行或列进行匹配,若均能够匹配,则所述第一偏移量为(n-1);
其中,n为正整数,x为大于2的正整数。
6.根据权利要求5所述的方法,其特征在于,当所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第n行或列不能匹配时,该方法还包括:
继续将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第(n+1)行或列进行匹配。
7.根据权利要求1所述的方法,其特征在于,所述根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一偏移量包括:
根据所述第一滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则将所述上一次发送给瘦客户端的图像的第(m-1-x)到(m-1)行或列与所述第一图像的第(n-1-x)到(n-1)行或列进行匹配,若均能够匹配,则所述第一偏移量为(m-n);
其中,n为正整数,x为大于2的正整数,m为上一次发送给瘦客户端的图像的总行或列数。
8.根据权利要求7所述的方法,其特征在于,当所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第n行或列不能匹配时,该方法还包括:
继续将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第(n-1)行或列进行匹配。
9.根据权利要求2所述的方法,其特征在于,所述根据第二图像和第一图像计算第二偏移量包括:
根据所述第二滚动方向判断出所述滚动区域对应的图像是下移或左移,将所述第一图像的第1行或列与所述第二图像的第n行或列进行匹配,若能够匹配,则将所述第二图像的第2到(2+x)行或列与所述第一图像的第(n+1)到(n+1+x)行或列进行匹配,若均能够匹配,则所述第二偏移量为(n-1);
其中,n为正整数,x为大于2的正整数。
10.根据权利要求9所述的方法,其特征在于,当所述第一图像的第1行或列与所述第二图像的第n行或列不能匹配时,该方法还包括:
继续将所述第一图像的第1行或列与所述第二图像的第(n+1)行或列进行匹配。
11.根据权利要求2所述的方法,其特征在于,所述根据第二图像和第一图像计算第二偏移量包括:
根据所述第二滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述第一图像的第m行或列与所述第二图像的第n行或列进行匹配,若能够匹配,则将所述第一图像的第(m-1-x)到(m-1)行或列与所述第二图像的第(n-1-x)到(n-1)行或列进行匹配,若均能够匹配,则所述第二偏移量为(m-n);其中,n为正整数,x为大于2的正整数,m为所述第一图像的总行或列数。
12.根据权利要求11所述的方法,其特征在于,当所述第一图像的第m行或列与所述第二图像的第n行或列不能匹配,该方法还包括:
继续将所述第一图像的第m行或列与所述第二图像的第(n-1)行或列进行匹配。
13.根据权利要求1或2所述的方法,其特征在于,当虚拟桌面中的一个窗口由非活动窗口变为当前活动窗口时,该方法还包括:
所述服务器获取当前活动窗口的应用类型,在自身保存的应用类型中查找所述当前活动窗口的应用类型,若查找到,则所述服务器将所述当前活动窗口的滚动区域对应的图像进行缓存,并发送给所述瘦客户端。
14.一种更新虚拟桌面的方法,其特征在于,应用于瘦客户端,包括:
瘦客户端接收到来自服务器的所述服务器接收到第一滚动命令时计算的第一滚动命令对应的第一偏移量和第一滚动命令中的第一滚动方向或第二偏移量和第二滚动命令中的第二滚动方向,根据接收到的第一滚动方向或第二滚动方向判断出当前活动窗口的滚动区域是下移或上移,将滚动区域均匀下移或上移,直到下移或上移的行数与接收到的第一偏移量或第二偏移量相等;其中,所述第二偏移量由所述服务器当在预设时间内接收到第二滚动命令,将当前活动窗口的滚动区域对应的第二图像进行缓存,并根据所述第二图像和第一图像,判断出所述当前活动窗口的滚动区域发生变化,根据所述第二图像和所述第一图像计算得到;
该方法还包括:
当所述瘦客户端接收到来自所述服务器的第一新出现的像素信息或第二新出现的像素信息时,将接收的第一新出现的像素信息或第二新出现的像素信息在上移或下移或左移或右移过程中新出现的像素上进行显示。
15.根据权利要求14所述的方法,其特征在于,当根据所述接收到的第一滚动方向或第二滚动方向判断出所述当前活动窗口的滚动区域是左移或右移时,该方法还包括:
将所述滚动区域均匀左移或右移,直到左移或右移的列数与所述接收到的第一偏移量或第二偏移量相等。
16.一种更新虚拟桌面的装置,其特征在于,至少包括:
计算模块,用于接收到第一滚动命令时,计算第一滚动命令对应的第一偏移量;在预设时间内检测是否接收到第二滚动命令;如果没有接收到第二滚动命令,则根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息;
发送模块,用于将计算得到的第一偏移量和接收到的第一滚动命令中的第一滚动方向发送给瘦客户端;将计算得到的第一新出现的像素信息发送给瘦客户端;
其中,所述计算模块计算第一滚动命令对应的第一偏移量的功能具体用于:将当前活动窗口的滚动区域对应的第一图像进行缓存;服务器根据本次缓存的第一图像和上一次发送给瘦客户端的图像,判断出当前活动窗口的滚动区域发生变化时,根据本次缓存的第一图像和上一次发送给瘦客户端的图像计算所述第一偏移量;
所述计算模块根据第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息的功能具体用于:根据所述第一滚动方向判断出所述滚动区域对应的图像是下移或左移,将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则所述第一新出现的像素信息为所述第一图像的第1到第(n-1)行或列;若不能匹配,则继续将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第(n+1)行或列进行匹配;若所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的所有行或列均不能匹配,则所述第一新出现的像素信息为所述第一图像;其中,n为正整数,x为大于2的正整数;或者,
所述计算模块根据第一图像和上一次发送给瘦客户端的图像计算第一新出现的像素信息的功能具体用于:根据所述第一滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则所述第一新出现的像素信息为第一图像的第n到第m行或列;若不能匹配,则继续将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第(n-1)行或列进行匹配;若所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的所有行或列均不能匹配,则所述第一新出现的像素信息为第一图像;其中,m为上一次发送给瘦客户端的图像的总行或列数。
17.根据权利要求16所述的装置,其特征在于,所述计算模块还用于:
在预设时间内接收到第二滚动命令,将当前活动窗口的滚动区域对应的第二图像进行缓存;并根据所述第二图像和所述第一图像,判断出所述当前活动窗口的滚动区域发生变化,根据所述第二图像和所述第一图像计算第二偏移量;
在所述发送模块将计算得到的第二偏移量和所述第二滚动命令中的第二滚动方向发送给瘦客户端后,所述计算模块还用于:
继续在预设时间内检测是否接收到第三滚动命令;
所述发送模块还用于:
将计算得到的第二偏移量和所述第二滚动方向发送给所述瘦客户端。
18.根据权利要求17所述的装置,其特征在于,所述计算模块还用于:
根据所述第二图像和所述第一图像,判断出所述当前活动窗口的滚动区域没有发生变化,根据所述第二图像和所述上一次发送给瘦客户端的图像计算第二新出现的像素信息;
所述发送模块还用于:
将计算得到的第二新出现的像素信息发送给所述瘦客户端。
19.根据权利要求16所述的装置,其特征在于,所述计算模块根据第一图像和上一次发送给瘦客户端的图像,判断当前活动窗口的滚动区域是否发生变化的功能具体用于:
将所述上一次发送给瘦客户端的图像的每一行或列与所述第一图像对应的行或列进行匹配,若均能够匹配,则判断出所述当前活动窗口的滚动区域没有发生变化;如果所述上一次发送给瘦客户端的图像的某一行或列与所述第一图像对应的行或列不能匹配,则判断出所述当前活动窗口的滚动区域发生变化。
20.根据权利要求16所述的装置,其特征在于,所述计算模块根据第一图像和上一次发送给瘦客户端的图像计算第一偏移量的功能具体用于:
根据所述第一滚动方向判断出所述滚动区域对应的图像是下移或左移,将所述上一次发送给瘦客户端的图像的第1行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则将所述上一次发送给瘦客户端的图像的第2到(2+x)行或列与所述第一图像的第(n+1)到(n+1+x)行或列进行匹配,若均能够匹配,则所述第一偏移量为(n-1);
其中,n为正整数,x为大于2的正整数。
21.根据权利要求16所述的装置,其特征在于,所述计算模块根据第一图像和上一次发送给瘦客户端的图像计算偏第一移量的功能具体用于:
根据所述第一滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述上一次发送给瘦客户端的图像的第m行或列与所述第一图像的第n行或列进行匹配,若能够匹配,则将所述上一次发送给瘦客户端的图像的第(m-1-x)到(m-1)行或列与所述第一图像的第(n-1-x)到(n-1)行或列进行匹配,若均能够匹配,则所述第一偏移量为(m-n);
其中,n为正整数,x为大于2的正整数,m为上一次发送给瘦客户端的图像的总行或列数。
22.根据权利要求17所述的装置,其特征在于,所述计算模块根据第二图像和第一图像计算第二偏移量的功能具体用于:
根据所述第二滚动方向判断出所述滚动区域对应的图像是下移或左移,将所述第一图像的第1行或列与所述第二图像的第n行或列进行匹配,若能够匹配,则将所述第一图像的第2到(2+x)行或列与所述第二图像的第(n+1)到(n+1+x)行或列进行匹配,若均能够匹配,则所述第二偏移量为(n-1);
其中,n为正整数,x为大于2的正整数。
23.根据权利要求17所述的装置,其特征在于,所述计算模块根据第二图像和第一图像计算第二偏移量的功能具体用于:
根据所述第二滚动方向判断出所述滚动区域对应的图像是上移或右移,将所述第一图像的第m行或列与所述第二图像的第n行或列进行匹配,若能够匹配,则将所述第一图像的第(m-1-x)到(m-1)行或列与所述第二图像的第(n-1-x)到(n-1)行或列进行匹配,若均能够匹配,则所述第二偏移量为(m-n);其中,n为正整数,x为大于2的正整数,m为所述第一图像的总行或列数。
24.根据权利要求16或17所述的装置,其特征在于,所述计算模块还用于:
检测到虚拟桌面中的一个窗口由非活动窗口变为当前活动窗口,获取当前活动窗口的应用类型,在自身保存的应用类型中查找所述当前活动窗口的应用类型,若查找到,则将所述当前活动窗口的滚动区域对应的图像进行缓存,并发送给所述瘦客户端。
25.一种更新虚拟桌面的装置,其特征在于,至少包括:
接收模块,用于接收到来自服务器的所述服务器接收到第一滚动命令时计算的第一滚动命令对应的第一偏移量和第一滚动命令中的第一滚动方向或第二偏移量和第二滚动命令中的第二滚动方向;其中,所述第二偏移量由所述服务器当在预设时间内接收到第二滚动命令,将当前活动窗口的滚动区域对应的第二图像进行缓存,并根据所述第二图像和第一图像,判断出所述当前活动窗口的滚动区域发生变化,根据所述第二图像和所述第一图像计算得到;
移动模块,用于根据接收到的第一滚动方向或第二滚动方向判断出当前活动窗口的滚动区域是下移或上移,将滚动区域均匀下移或上移,直到下移或上移的行数与接收到的第一偏移量或第二偏移量相等;
所述接收模块还用于:接收到来自所述服务器的第一新出现的像素信息或第二新出现的像素信息;
所述装置还包括:
显示模块,用于将接收的第一新出现的像素信息或第二新出现的像素信息在上移或下移或左移或右移过程中新出现的像素上进行显示。
26.根据权利要求25所述的装置,其特征在于,所述移动模块还用于:
根据所述接收到的第一滚动方向或第二滚动方向判断出所述当前活动窗口的滚动区域是左移或右移,将所述滚动区域均匀左移或右移,直到左移或右移的列数与所述接收到的第一偏移量或第二偏移量相等。
CN201410545561.XA 2014-10-15 2014-10-15 一种更新虚拟桌面的方法和装置 Active CN105516229B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201410545561.XA CN105516229B (zh) 2014-10-15 2014-10-15 一种更新虚拟桌面的方法和装置
EP15777456.3A EP3208997A4 (en) 2014-10-15 2015-02-25 Method and device for updating virtual desktop
PCT/CN2015/073263 WO2015154592A1 (zh) 2014-10-15 2015-02-25 一种更新虚拟桌面的方法和装置
US15/519,811 US20170242712A1 (en) 2014-10-15 2015-02-25 Methods and devices for updating virtual desktop

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410545561.XA CN105516229B (zh) 2014-10-15 2014-10-15 一种更新虚拟桌面的方法和装置

Publications (2)

Publication Number Publication Date
CN105516229A CN105516229A (zh) 2016-04-20
CN105516229B true CN105516229B (zh) 2020-02-28

Family

ID=54287300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410545561.XA Active CN105516229B (zh) 2014-10-15 2014-10-15 一种更新虚拟桌面的方法和装置

Country Status (4)

Country Link
US (1) US20170242712A1 (zh)
EP (1) EP3208997A4 (zh)
CN (1) CN105516229B (zh)
WO (1) WO2015154592A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160306531A1 (en) * 2015-04-16 2016-10-20 Microsoft Technology Licensing, Llc Dynamic Launch Behavior Based on Context Information
CN106020756A (zh) * 2016-05-13 2016-10-12 江苏云途腾科技有限责任公司 一种更新虚拟桌面的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1320241A2 (en) * 2000-05-26 2003-06-18 Citrix Systems, Inc. Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism
CN102566910A (zh) * 2011-12-14 2012-07-11 广州杰赛科技股份有限公司 刷新虚拟桌面客户端屏显的方法及虚拟桌面系统
CN103324738A (zh) * 2013-06-28 2013-09-25 北京奇虎科技有限公司 一种电子设备上网页缩放后对齐的方法和装置
CN103842982A (zh) * 2011-06-08 2014-06-04 茨特里克斯系统公司 用于本地生成的手势和过渡图形与终端控制服务的交互的方法和系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110047476A1 (en) * 2008-03-24 2011-02-24 Hochmuth Roland M Image-based remote access system
US8176434B2 (en) * 2008-05-12 2012-05-08 Microsoft Corporation Virtual desktop view scrolling
US8441494B2 (en) * 2009-04-23 2013-05-14 Vmware, Inc. Method and system for copying a framebuffer for transmission to a remote display
US8941673B2 (en) * 2011-11-08 2015-01-27 Red Hat, Inc. Rendering images in a remote web browser
CN102819389B (zh) * 2012-07-19 2016-03-09 宇龙计算机通信科技(深圳)有限公司 一种移动终端以及在移动终端显示内容的方法
CN103200237B (zh) * 2013-03-11 2016-06-08 天脉聚源(北京)传媒科技有限公司 一种保持远程桌面同步的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1320241A2 (en) * 2000-05-26 2003-06-18 Citrix Systems, Inc. Method and system for efficiently reducing graphical display data for transmission over a low bandwidth transport protocol mechanism
CN103842982A (zh) * 2011-06-08 2014-06-04 茨特里克斯系统公司 用于本地生成的手势和过渡图形与终端控制服务的交互的方法和系统
CN102566910A (zh) * 2011-12-14 2012-07-11 广州杰赛科技股份有限公司 刷新虚拟桌面客户端屏显的方法及虚拟桌面系统
CN103324738A (zh) * 2013-06-28 2013-09-25 北京奇虎科技有限公司 一种电子设备上网页缩放后对齐的方法和装置

Also Published As

Publication number Publication date
WO2015154592A1 (zh) 2015-10-15
EP3208997A1 (en) 2017-08-23
EP3208997A4 (en) 2017-10-04
US20170242712A1 (en) 2017-08-24
CN105516229A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
CN106462403B (zh) 根据用户意图预获取网格块
US8683377B2 (en) Method for dynamically modifying zoom level to facilitate navigation on a graphical user interface
US10620816B2 (en) System for displaying elements of a scrollable list
US10417297B2 (en) Webpage loading method and system
CA2922060C (en) Swipe toolbar to switch tabs
CN105808110B (zh) 表格显示方法及显示设备
US10547711B2 (en) Using off-screen user interface data during remote sessions
US11610563B2 (en) Location-based display of pixel history
CN105516229B (zh) 一种更新虚拟桌面的方法和装置
CN105227603A (zh) 虚拟桌面图像处理方法、装置、虚拟桌面服务器及瘦终端
CN104020934A (zh) 分页控件实现方法及装置
JP5563703B2 (ja) コンテンツ配信装置、コンテンツ配信方法、コンテンツ配信プログラム及び端末用プログラム
JP2014081866A (ja) Webページ閲覧サーバ、Webページ閲覧システム、Webページ閲覧方法及びプログラム
CN105487801B (zh) 一种进度条调节方法及移动终端
CN103870103A (zh) 信息处理的方法及电子设备
US9235873B2 (en) Tile-based caching for rendering complex artwork
CN112947811A (zh) 页面导航的显示方法和装置、电子设备和存储介质
JP6520674B2 (ja) 表示システム、表示端末、表示方法、および表示プログラム
CN106354726B (zh) 网页内容显示的控制方法及装置
CN105334987A (zh) 一种用于对设备的触摸屏进行操作展现的方法和装置
US9514552B2 (en) Information processing apparatus, information processing method, and storage medium
JP2022079530A (ja) プログラム、情報処理方法及び情報端末
JP6204304B2 (ja) 情報処理装置、情報処理方法及びプログラム
CN105389362A (zh) 一种用于展现交互界面的方法和装置
JP2015007988A (ja) コンテンツ配信装置、コンテンツ配信方法、コンテンツ配信プログラム及び端末用プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant