Smooth dragging method for application virtualization window, client and server

Through real-time channel connection and synchronization between the client and the server, the residual problems during virtualized form dragging are solved, achieving a smooth user experience.

CN119668749AInactive Publication Date: 2025-03-21HUNAN KYLIN XINAN TECH CO LTD
View PDF 10 Cites 0 Cited by

Patent Information

Application Number
CN202411732935.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-29
Publication Date
2025-03-21
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

In application virtualization mode, the refresh of the screen is lagging when the client drags the form, resulting in residual problems during the form movement, affecting the user experience.

Method used

Establish channel connections between the client and the server, and monitor and synchronize the mobile information of the application form in real time to ensure that the form is updated and redrawn in real time during the movement process to avoid residual.

Benefits of technology

It realizes that when the client starts the remote service desktop application, there is no residue during the application form movement, which improves the user experience and makes it as smooth as the native desktop.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119668749A_ABST
    Figure CN119668749A_ABST
Patent Text Reader

Abstract

The invention provides an application virtualization window smooth dragging method, a client side and a server side, and the method comprises the steps that the client side establishes channel connection with the server side, and a virtualized application under an operating system of the server side is started; receiving a mobile message of the application sent by the server, wherein the mobile message is used for indicating an application window of the client to move; moving an application window to a target position in real time, and synchronizing information of the application window to the server; and receiving the final position of the application window notified by the server, carrying out on-screen processing, and redrawing and refreshing a target window. The application of the remote service desktop can be started at the client, it is guaranteed that no residue exists in the moving process of the application window, and the user experience same as that of an original desktop is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of computer technology, and in particular, relates to a method for smoothly dragging an application virtualization window, a client, and a server. Background Art

[0002] The key to cloud application virtualization is to make users feel unaware and have a smooth operating experience. Linux is used as a client to display the Windows application window. During the actual window movement, the mouse status and position need to be synchronized to the Windows server. The server will return the desktop data and the real-time position of the window to the client, and the client will redraw the window and update the window content.

[0003] In application virtualization mode, the client creates a 24-bit drawable desktop (surface) with the size of the remote desktop. The windows of the opened applications are de-duplicated on the server and sent to the client. The client draws the content on the surface, traverses all windows, calculates the area of ​​the window that needs to be updated, and then calculates the area to be updated from the specific position of the surface according to the coordinate position of the window to be displayed on the window. However, when the client drags the form, the refresh of the screen lags behind the operation. During the process of moving the form, the real form on the server has not changed. When the underlying window needs to be redrawn, the corresponding bitmap is copied from the background surface to the window. There is a residual screen at the starting position of the top-level form until the client releases the mouse. The screen is refreshed. Summary of the invention

[0004] The main purpose of the embodiments of the present invention is to provide a method, client and server for smoothly dragging an application virtualization window, which can realize starting a remote service desktop application on the client, ensure that there is no residue during the movement of the application window, and have the same user experience as on the native desktop.

[0005] In a first aspect, a method for smoothly dragging an application virtualization window is provided, the method comprising: establishing a channel connection between a client and a server, and starting a virtualized application under the server operating system; receiving a move message of the application sent by the server, the move message being used to instruct the application window of the client to move; moving the application window to a target position in real time, and synchronizing the information of the application window to the server; receiving the final position of the application window informed by the server, performing on-screen processing, and redrawing and refreshing the target window.

[0006] In a possible implementation, the client operating system is a Linux operating system, and the server operating system is a Windows operating system.

[0007] In a second aspect, a method for smoothly dragging an application virtualization window is provided, the method comprising: establishing a channel connection between a server and a client; monitoring the startup of the application of the client in real time, and obtaining the status of the application window, the application being a virtualized application under the server operating system; sensing the action of the client dragging the application window, and transmitting a move message to the client, the move message being used to instruct the application window of the client to move; obtaining information of the application window synchronized by the client during the process of the client moving the application window to the target position in real time; and informing the client of the final position of the application window so that the client can redraw and refresh the target window.

[0008] In another possible implementation, before the server establishes a channel connection with the client, the server application cloud platform publishes a virtualized application so that the client starts the virtualized application.

[0009] In another possible implementation, during the process of the client moving the application window to the target location in real time, obtaining information of the application window synchronized by the client, including: during the process of the client moving the application window to the target location in real time, synchronously receiving the width, height and position information of the application window sent by the client; when the client moves the application window to the target location, receiving the final position of the application window synchronously sent by the client.

[0010] According to a third aspect, a client is provided, comprising: an application startup unit, used for establishing a channel connection between the client and the server, and starting a virtualized application under the server operating system; a first receiving unit, used for receiving a move message of the application sent by the server, wherein the move message is used to instruct the application window of the client to move; a window moving unit, used for moving the application window to the target position in real time, and synchronizing the information of the application window to the server; and a window redrawing unit, used for receiving the final position of the application window informed by the server, performing on-screen processing, and redrawing and refreshing the target window.

[0011] In a fourth aspect, a server is provided, comprising: a connection establishment unit, configured to establish a channel connection between the server and the client; a real-time monitoring unit, configured to monitor the startup of the application of the client in real time and obtain the status of the application window, wherein the application is a virtualized application under the server operating system; an action perception unit, configured to perceive the action of the client dragging the application window and transmit a move message to the client, wherein the move message is used to indicate the movement of the application window of the client; a synchronization receiving unit, configured to obtain information of the application window synchronized by the client during the process of the client moving the application window to the target position in real time; and a position notification unit, configured to notify the client of the final position of the application window so that the client can redraw and refresh the target window.

[0012] In a fifth aspect, an electronic device is provided, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, a method for smoothly dragging an application virtualization window as provided in the first aspect is implemented.

[0013] In a sixth aspect, a non-transitory computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, a method for smoothly dragging an application virtualization window as provided in the first aspect is implemented. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in describing the embodiments of the present application are briefly introduced below.

[0015] Figure 1 A schematic diagram of a system for smooth dragging of application virtualization windows provided by an embodiment of the present invention;

[0016] Figure 2 A schematic diagram of an implementation process of a system for smooth dragging of an application virtualization window provided by an embodiment of the present invention;

[0017] Figure 3 A flowchart of a method for smoothly dragging an application virtualization window provided by an embodiment of the present invention;

[0018] Figure 4 A flowchart of a method for smoothly dragging an application virtualization window provided by another embodiment of the present invention;

[0019] Figure 5 A structural diagram of a client provided for an embodiment of the present invention;

[0020] Figure 6 A structural diagram of a server provided for an embodiment of the present invention;

[0021] Figure 7 A schematic diagram of the physical structure of an electronic device provided by the present invention.

[0022] Specific implementation method

[0023] The embodiments of the present application are described in detail below, and examples of the embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar modules or modules with the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain the present application, and cannot be interpreted as limiting the present invention.

[0024] It will be understood by those skilled in the art that, unless expressly stated, the singular forms "a", "an", "said" and "the" used herein may also include plural forms. It should be further understood that the term "comprising" used in the specification of the present application refers to the presence of the features, integers, steps, operations, modules and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, modules, components and / or groups thereof. It should be understood that when we refer to a module as being "connected" or "coupled" to another module, it may be directly connected or coupled to the other modules, or there may be intermediate modules. In addition, the "connection" or "coupling" used herein may include wireless connection or wireless coupling. The term "and / or" used herein includes all or any modules and all combinations of one or more associated listed items.

[0025] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation method of the present application will be further described in detail below with reference to the accompanying drawings.

[0026] The technical solution of the present application and how to solve the above-mentioned technical problems are described in detail below with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of the present application will be described below in conjunction with the accompanying drawings.

[0027] See also Figure 1 The application virtualization window smooth dragging system of the embodiment of the present invention includes a client and a server. The server monitors and obtains the moving action of the virtualized application under the server operating system of the client in real time. When the client moves the application window, the real-time location information of the application window is synchronized to the server, so that the application of the remote service desktop can be started on the client, ensuring that there is no residue in the process of moving the application window, and having the same user experience as on the native desktop.

[0028] Figure 2 This is the specific implementation process of the application virtualization window smooth drag system. Figure 2As shown, the server application cloud platform publishes virtualized applications so that the client can start the virtualized application. The client logs in to the cloud platform, establishes a channel connection with the server, downloads the required virtualized application under the server operating system, and starts the application. The server monitors the startup of the application and obtains the message and status of the application window. The server perceives the action of the client dragging the application window, transmits the mobile message to the client, and synchronizes the size and position of the window. The client receives the mobile message from the server, and synchronizes the screen width, height, and window information with the server during the real-time window movement process. The client moves the window to the target position, releases the mouse and synchronizes the final position of the window to the server. The server informs the client of the final position of the window, and the client performs on-screen processing and redraws and refreshes the target window.

[0029] like Figure 3 The figure is a flow chart of a method for smoothly dragging an application virtualization window provided by an embodiment of the present invention. The method is applied to a client and includes:

[0030] Step S11, the client establishes a channel connection with the server, and starts a virtualized application under the server operating system.

[0031] In an embodiment of the present invention, the client operating system is a Linux operating system, and the server operating system is a Windows operating system, including but not limited to win7, win10, winserver2012, winserver2016, winserver2019, etc.

[0032] In step S11, the client may establish a channel connection with the server through a custom communication protocol, and then start a virtualized application under the server operating system.

[0033] Step S12: receiving a move message of an application sent by the server, where the move message is used to instruct the client to move the application window.

[0034] The server detects the client's application startup and obtains the application window's message and status. The server perceives the client's action of dragging the application window and transmits a move message to the client. The move message is used to instruct the client's application window to move, which is the triggering action of the application window move. At the same time, the size and position of the application window are also synchronized.

[0035] Step S13, moving the application window to the target location in real time, and synchronizing the information of the application window to the server.

[0036] Optionally, during the real-time moving of the application window, obtain the width and height of the application window in the client operating system; use the width and height as the horizontal and vertical offsets of the window respectively; synchronize the offset and the application window size to the server; move the application window to the target position, release the mouse and synchronize the final position of the application window to the server. In this way, during the moving process, the client application will not have residual images, and the real-time position of the window will be refreshed and synchronized with the server when the client moves.

[0037] Step S14, receiving the final position of the application window notified by the server, performing on-screen processing, and redrawing and refreshing the target window.

[0038] After the server receives the final position of the client when it finishes moving and synchronizes to the server, it informs the client of the final position of the application window, and then the client performs on-screen processing and redraws and refreshes the target window. In this way, through cloud application virtualization technology, Windows application software can run smoothly on the Linux operating system, and the application of the remote service desktop can be started on the Linux client to ensure that there is no residue during the movement of the application window, solve the problem of dragging residue of Windows applications under the Linux operating system, and enable users to have the same user experience as on the native Windows desktop.

[0039] In the embodiment of the present invention, a channel connection is established between the client and the server, and a virtualized application under the server operating system is started; a move message of the application sent by the server is received, and the move message is used to instruct the client's application window to move; the application window is moved to the target location in real time, and the information of the application window is synchronized to the server; the final location of the application window notified by the server is received, and the on-screen processing is performed, and the target window is redrawn and refreshed, so that the application of the remote service desktop can be started on the client, ensuring that there is no residue during the movement of the application window, and having the same user experience as on the native desktop.

[0040] like Figure 4 The figure is a flow chart of a method for smoothly dragging an application virtualization window provided by an embodiment of the present invention. The method is applied to a server, and the method includes:

[0041] Step S21: The server establishes a channel connection with the client.

[0042] Before step S21, the server-side application cloud platform publishes the virtualized application so that the client can start the virtualized application.

[0043] If any client needs to use any application under the server operating system, the server establishes a channel connection with the client, so that the client can download the application from the corresponding cloud platform and start the application.

[0044] Step S22, monitoring the startup of the application on the client in real time, and obtaining the status of the application window, the application is a virtualized application under the server operating system.

[0045] The server monitors the startup of the application by the client in real time. If it detects that the client has started the application, it also obtains the status of the application window.

[0046] Step S23, sensing the action of the client dragging the application window, and transmitting a move message to the client, where the move message is used to instruct the client to move the application window.

[0047] Real-time perception of the client's action of dragging the application window. If the client's action of dragging the application window is perceived, a move message is sent to the client. The move message is used to indicate the client's application window movement, that is, the triggering action of the application window movement. At the same time, the size and position of the application window synchronized by the client are also obtained.

[0048] Step S24, while the client is moving the application window to the target location in real time, obtaining information of the application window synchronized by the client.

[0049] Optionally, when the client moves the application window to the target location in real time, the width, height and location information of the application window sent by the client are synchronously received. When the client moves the application window to the target location, the final location of the application window sent synchronously by the client is received.

[0050] Step S25, informing the client of the final position of the application window so that the client can redraw and refresh the target window.

[0051] After receiving the final position synchronized by the client, the server informs the client of the final position of the application window, which is equivalent to responding to the client moving the application window to the target position. After the client receives the final position informed by the server, it can perform on-screen processing, redraw and refresh the target window, and realize the remote service Windows desktop application launched on the Linux client.

[0052] The embodiment of the present invention establishes a channel connection between the server and the client; monitors the startup of the client's application in real time and obtains the status of the application window, where the application is a virtualized application under the server's operating system; senses the action of the client dragging the application window, and transmits a move message to the client, where the move message is used to instruct the client to move the application window; obtains the information of the application window synchronized by the client during the process of the client moving the application window to the target position in real time; informs the client of the final position of the application window so that the client can redraw and refresh the target window, thereby enabling the startup of the remote service desktop application on the client, ensuring that there is no residue during the movement of the application window, and having the same user experience as on the native desktop.

[0053] like Figure 5 The figure shows a structural diagram of a client provided by an embodiment of the present invention, the client comprising:

[0054] The application startup unit 501 is used for the client to establish a channel connection with the server and start the virtualized application under the server operating system;

[0055] The first receiving unit 502 is used to receive a moving message of an application sent by the server, where the moving message is used to instruct the application window of the client to move;

[0056] The window moving unit 503 is used to move the application window to the target location in real time and synchronize the information of the application window to the server;

[0057] The window redrawing unit 504 is used to receive the final position of the application window notified by the server, perform on-screen processing, and redraw and refresh the target window.

[0058] The device of the above embodiment is applied to the corresponding method in the above embodiment, and has the beneficial effects of the corresponding method embodiment, which will not be described in detail here.

[0059] like Figure 6 The figure shows a structural diagram of a server provided by an embodiment of the present invention, and the server includes:

[0060] The connection establishment unit 601 is used to establish a channel connection between the server and the client;

[0061] A real-time monitoring unit 602 is used to monitor the startup of the client application in real time and obtain the status of the application window, where the application is a virtualized application under the server operating system;

[0062] An action sensing unit 603 is used to sense the action of the client dragging the application window and transmit a move message to the client, where the move message is used to instruct the client to move the application window;

[0063] The synchronous receiving unit 604 is used to obtain the information of the application window synchronized by the client during the process of the client moving the application window to the target location in real time;

[0064] The position notification unit 605 is used to notify the client of the final position of the application window so that the client can redraw and refresh the target window.

[0065] The device of the above embodiment is applied to the corresponding method in the above embodiment, and has the beneficial effects of the corresponding method embodiment, which will not be described in detail here.

[0066] Figure 7 An example of a physical structure diagram of an electronic device is shown in FIG. Figure 3As shown, the electronic device may include: a processor 701, a communications interface 702, a memory 703 and a communication bus 704, wherein the processor, the communications interface and the memory communicate with each other via the communication bus. The processor may call the logic instructions in the memory to execute a method for smoothly dragging an application virtualization window.

[0067] The method includes: establishing a channel connection between the client and the server, and starting a virtualized application under the server operating system; receiving a mobile message of the application sent by the server, the mobile message is used to instruct the client's application window to move; moving the application window to the target position in real time, and synchronizing the information of the application window to the server; receiving the final position of the application window notified by the server, performing on-screen processing, and redrawing and refreshing the target window.

[0068] Alternatively, the method includes: establishing a channel connection between the server and the client; monitoring the startup of the client's application in real time and obtaining the status of the application window, where the application is a virtualized application under the server's operating system; sensing the action of the client dragging the application window, and transmitting a move message to the client, where the move message is used to instruct the client's application window to move; obtaining information about the application window synchronized by the client while the client moves the application window to the target location in real time; and informing the client of the final location of the application window so that the client can redraw and refresh the target window.

[0069] In addition, the logic instructions in the above-mentioned memory can be implemented in the form of software functional units and can be stored in a computer-readable storage medium when sold or used as an independent product. Based on such an understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present invention. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0070] On the other hand, an embodiment of the present invention further provides a computer program product, which includes a computer program stored on a non-transitory computer-readable storage medium, and the computer program includes program instructions. When the program instructions are executed by a computer, the computer can execute a method for smooth dragging of an application virtualization window provided in the above-mentioned method embodiments.

[0071] The method includes: establishing a channel connection between the client and the server, and starting a virtualized application under the server operating system; receiving a mobile message of the application sent by the server, the mobile message is used to instruct the client's application window to move; moving the application window to the target position in real time, and synchronizing the information of the application window to the server; receiving the final position of the application window notified by the server, performing on-screen processing, and redrawing and refreshing the target window.

[0072] Alternatively, the method includes: establishing a channel connection between the server and the client; monitoring the startup of the client's application in real time and obtaining the status of the application window, where the application is a virtualized application under the server's operating system; sensing the action of the client dragging the application window, and transmitting a move message to the client, where the move message is used to instruct the client's application window to move; obtaining information about the application window synchronized by the client while the client moves the application window to the target location in real time; and informing the client of the final location of the application window so that the client can redraw and refresh the target window.

[0073] On the other hand, an embodiment of the present invention further provides a non-transitory computer-readable storage medium having a computer program stored thereon, which is implemented when the computer program is executed by a processor to perform a method for smoothly dragging an application virtualization window provided in the above embodiments.

[0074] The method includes: establishing a channel connection between the client and the server, and starting a virtualized application under the server operating system; receiving a mobile message of the application sent by the server, the mobile message is used to instruct the client's application window to move; moving the application window to the target position in real time, and synchronizing the information of the application window to the server; receiving the final position of the application window notified by the server, performing on-screen processing, and redrawing and refreshing the target window.

[0075] Alternatively, the method includes: establishing a channel connection between the server and the client; monitoring the startup of the client's application in real time and obtaining the status of the application window, where the application is a virtualized application under the server's operating system; sensing the action of the client dragging the application window, and transmitting a move message to the client, where the move message is used to instruct the client's application window to move; obtaining information about the application window synchronized by the client while the client moves the application window to the target location in real time; and informing the client of the final location of the application window so that the client can redraw and refresh the target window.

[0076] It should be understood that, although the steps in the flowchart of the accompanying drawings are displayed in sequence as indicated by the arrows, these steps are not necessarily executed in sequence in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least a part of the steps in the flowchart of the accompanying drawings may include multiple sub-steps or multiple stages, and these sub-steps or stages are not necessarily executed at the same time, but can be executed at different times, and their execution order is not necessarily sequential, but can be executed in turn or alternately with other steps or at least a part of the sub-steps or stages of other steps.

[0077] The above is only a partial implementation of the present invention. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of the present invention. These improvements and modifications should also be regarded as the scope of protection of the present invention.

Claims

1. A method for smoothly dragging an application virtualization window, characterized in that: Applied to a client, the method comprises: The client establishes a channel connection with the server and starts the virtualized application under the server operating system; receiving a moving message of the application sent by the server, wherein the moving message is used to instruct the application window of the client to move; Moving the application window to the target location in real time, and synchronizing the information of the application window to the server; Receive the final position of the application window notified by the server, perform on-screen processing, and redraw and refresh the target window.

2. The method according to claim 1, characterized in that The real-time moving application form to a target location and synchronizing information of the application form to the server include: In the process of real-time mobile application window, obtain the width and height of the application window in the client operating system; The width value and the height value are used as the offset of the window in the horizontal direction and the vertical direction respectively; Synchronizing the offset and the application window size to the server; Move the application window to the target position, release the mouse and synchronize the final position of the application window to the server.

3. The method according to claim 2, characterized in that The client operating system is a Linux operating system, and the server operating system is a Windows operating system.

4. A method for smoothly dragging an application virtualization window, characterized in that: Applied to the server, the method includes: The server establishes a channel connection with the client; Monitor the startup of the application of the client in real time and obtain the status of the application window, wherein the application is a virtualized application under the server operating system; sensing an action of the client dragging the application window, and transmitting a move message to the client, wherein the move message is used to instruct the client to move the application window; In the process of the client moving the application window to the target location in real time, obtaining information of the application window synchronized by the client; The client is informed of the final position of the application window so that the client can redraw and refresh the target window.

5. The method according to claim 4, characterized in that Before the server establishes a channel connection with the client, it includes: The server-side application cloud platform publishes the virtualized application so that the client can start the virtualized application.

6. The method according to claim 4, characterized in that The acquiring the information of the application window synchronized by the client during the process of the client moving the application window to the target location in real time includes: In the process of the client moving the application window to the target position in real time, synchronously receiving the width, height and position information of the application window sent by the client; When the client moves the application window to the target position, the final position of the application window synchronously sent by the client is received.

7. A client, characterized in that: The client comprises: An application startup unit is used for establishing a channel connection between the client and the server, and starting a virtualized application under the server operating system; A first receiving unit, configured to receive a moving message of the application sent by the server, wherein the moving message is used to instruct the application window of the client to move; A window moving unit, used to move the application window to a target location in real time, and synchronize the information of the application window to the server; The window redrawing unit is used to receive the final position of the application window notified by the server, perform on-screen processing, and redraw and refresh the target window.

8. A server, characterized in that: The server includes: A connection establishment unit is used to establish a channel connection between the server and the client; A real-time monitoring unit, used to monitor the startup of the application of the client in real time and obtain the status of the application window, wherein the application is a virtualized application under the server operating system; an action sensing unit, used to sense the action of the client dragging the application window, and transmit a movement message to the client, wherein the movement message is used to instruct the application window of the client to move; A synchronous receiving unit, used for acquiring information of the application window synchronized by the client during the process of the client moving the application window to the target location in real time; The position notification unit is used to notify the client of the final position of the application window so that the client can redraw and refresh the target window.

9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the program, a method for smoothly dragging an application virtualization window is implemented as described in any one of claims 1-6.

10. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, a method for smoothly dragging an application virtualization window is implemented according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Universal audio / video redirection method for cloud access devices under VDI (Video Desktop Infrastructure) environment

    CN102547394A

  • Method, device and system for remote control

    CN105094385A

  • Virtual screen construction method, computing device and storage medium

    CN112965771A

  • Method and device for realizing movement of end-side window

    CN114385046A

  • Window adjustment method, device and system based on cloud application and electronic equipment

    CN114661193A