WO2018024230A1 - 桌面窗口共享方法和系统 - Google Patents

桌面窗口共享方法和系统 Download PDF

Info

Publication number
WO2018024230A1
WO2018024230A1 PCT/CN2017/095808 CN2017095808W WO2018024230A1 WO 2018024230 A1 WO2018024230 A1 WO 2018024230A1 CN 2017095808 W CN2017095808 W CN 2017095808W WO 2018024230 A1 WO2018024230 A1 WO 2018024230A1
Authority
WO
WIPO (PCT)
Prior art keywords
window
terminal
desktop
mirror
virtual desktop
Prior art date
Application number
PCT/CN2017/095808
Other languages
English (en)
French (fr)
Inventor
李�根
谭小刚
Original Assignee
威创集团股份有限公司
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 威创集团股份有限公司 filed Critical 威创集团股份有限公司
Publication of WO2018024230A1 publication Critical patent/WO2018024230A1/zh

Links

Images

Classifications

    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller

Definitions

  • the present invention relates to the field of computer data sharing technologies, and in particular, to a desktop window sharing method and system.
  • one way of sharing the desktop in the traditional manner is to first create a plurality of virtual screens on the terminal A, for example, virtual screen 1, virtual screen 2, virtual screen 3; Moving the windows on the terminal A to the respective virtual screens respectively, for example, moving the window 1 to the virtual screen 1, moving the window 2 to the virtual screen 2, moving the window 3 to the virtual screen 3, and finally displaying different on different display screens
  • a window in the virtual screen for example, a mirror window 1 of the display screen 1 display window 1, a mirror window 2 of the display screen 2 display window 2, and a mirror window 3 of the display screen 3 display window 3.
  • the above-mentioned method of desktop sharing theoretically can extend the virtual screen as much as possible as long as the shared terminal (such as terminal A above) supports the performance of the graphics card, thereby achieving the purpose of spanning multiple screens. But in fact, limited by the performance of the terminal graphics card, the general graphics performance can only be virtual 1 or 2 screens, plus 1 actual physical screen, a total of application windows can be moved on 2 to 3 terminal screens.
  • a desktop window sharing method includes:
  • a desktop window sharing system includes at least a first terminal and a second terminal, the first terminal includes a first mobile unit, and the second terminal includes a first acquiring unit and a first mirroring unit:
  • the first mobile unit is configured to move the first mirrored window on the primary desktop of the first terminal to the first virtual desktop configured in advance for the first terminal, where the first virtual desktop corresponds to the primary desktop of the second terminal;
  • the first acquiring unit is configured to acquire, in the second terminal, window data of a native window corresponding to the first mirror window to the window source terminal;
  • the first mirroring unit is configured to mirror the first mirror window moved to the first virtual desktop to the main desktop of the second terminal according to the window data to obtain a second mirror window.
  • a desktop window sharing system includes a third mobile unit, a third obtaining unit, and a third mirroring unit;
  • the third mobile unit is configured to move a mirror window or a native window on the current terminal main desktop to a virtual desktop configured in advance for the current terminal, where the virtual desktop corresponds to a main desktop of the target terminal;
  • the third obtaining unit is configured to acquire window data of the corresponding native window to the window source terminal when the mirror window or the native window moves to the virtual desktop corresponding to the current terminal main desktop;
  • the third mirroring unit is configured to mirror a mirror window or a native window in the virtual desktop corresponding to the current terminal main desktop to the current terminal main desktop according to the window data.
  • the first mirror window on the primary desktop of the first terminal is moved to the first virtual desktop configured in advance for the first terminal, and the first virtual desktop corresponds to the primary desktop of the second terminal.
  • the second terminal acquires window data of the native window corresponding to the first mirror window, and mirrors the first mirror window moved to the first virtual desktop to the second terminal according to the window data.
  • the first desktop window is obtained, and the first virtual desktop is configured in advance for the first terminal, and the first virtual desktop corresponds to the primary desktop of the second terminal, and the first mirrored window on the primary desktop of the first terminal is first
  • the first virtual desktop moves, and the window data is obtained from the window source terminal that creates the native window, and the first mirror window moved to the first virtual desktop is mirrored to the main body of the second terminal according to the window data
  • the desktop so that the first mirror window moved from a certain terminal can be moved to the second terminal. In this way, the mirror window can also be used by the second terminal.
  • the third terminal moves, and then the mirror window is moved from the third terminal to the fourth terminal, and so on, so that a window can be moved across the main desktop display of any of the multiple terminals, and only one or two of each terminal need to be configured separately.
  • Virtual desktops can be implemented without being limited by the performance of the terminal graphics.
  • FIG. 1-1 is a schematic flowchart of an implementation process of a desktop window sharing method according to Embodiment 1 of the present invention
  • 1-2 is a schematic structural diagram of a terminal group composed of a plurality of terminals arranged in sequence
  • Figure 1-3 is a schematic diagram of a configuration manner of a virtual desktop of each terminal in the terminal group in Figure 1-2;
  • FIG. 2 is a schematic flowchart of implementing a desktop window sharing method according to Embodiment 2 of the present invention
  • FIG. 3 is a schematic flowchart of implementing a desktop window sharing method according to Embodiment 3 of the present invention.
  • FIG. 4 is a schematic flowchart of implementing a desktop window sharing method according to Embodiment 4 of the present invention.
  • 5-1 is a schematic flowchart 1 of a composition process of a desktop window sharing system according to Embodiment 5 of the present invention.
  • 5-2 is a second schematic diagram of a composition flow of a desktop window sharing system according to Embodiment 5 of the present invention.
  • 5-3 is a schematic flowchart 3 of a composition process of a desktop window sharing system according to Embodiment 5 of the present invention.
  • FIG. 5-4 is a fourth schematic diagram of a composition flow of a desktop window sharing system according to Embodiment 5 of the present invention.
  • FIG. 6 is a schematic flowchart of a composition of a desktop window sharing system according to Embodiment 6 of the present invention.
  • FIG. 7 is a schematic flowchart of a composition of a desktop window sharing system according to Embodiment 7 of the present invention.
  • 8-1 is a schematic diagram of a scenario in a specific example of the present invention.
  • 8-2 is a schematic diagram of a window moving process in a specific example of the present invention.
  • Embodiment 1 of the present invention provides a desktop window sharing method.
  • 1-1 is a schematic flowchart of an implementation process of a desktop window sharing method according to Embodiment 1 of the present invention. As shown in Figure 1-1, the desktop window sharing method of this embodiment includes the following steps:
  • Step S101 Move the first mirrored window on the primary desktop of the first terminal to the first virtual desktop configured in advance for the first terminal, where the first virtual desktop corresponds to the primary desktop of the second terminal;
  • the first mirrored window on the primary desktop of the first terminal is moved to the first virtual desktop configured in advance for the first terminal in response to a user-triggered mouse movement message (or referred to as a mouse movement event).
  • the first terminal may be any one of a terminal group (consisting of a plurality of terminals arranged in order).
  • the first terminal is a terminal k in the terminal group.
  • Each terminal in the terminal group may be a mobile terminal or a non-mobile terminal, and the non-mobile terminal includes a desktop computer, and the mobile terminal includes a smart phone, a tablet terminal, a notebook terminal, a personal digital assistant, and the like.
  • the first mirroring window may be obtained after the neighboring terminal of the first terminal moves the native window or the mirroring window to the first terminal, for example, the first mirroring window is moved by the terminal k-1 or the terminal k+1 to the terminal k. Obtained from a native window or a mirrored window.
  • the second terminal may be a left neighbor terminal or a right neighbor terminal of the first terminal, and when the second terminal is a left neighbor terminal of the first terminal, the first terminal configuration
  • the first virtual desktop is a virtual desktop on the left side.
  • the first virtual desktop configured for the first terminal is a virtual desktop on the right side.
  • the specific manner of configuring the virtual desktop for the terminal may be: if the current terminal (any one terminal) has a left neighboring terminal, the left virtual desktop is configured for the current terminal, and the left virtual desktop corresponds to the primary desktop of the left neighboring terminal of the current terminal. If the current terminal has a right neighboring terminal, the right virtual desktop is configured for the current terminal, and the right virtual desktop corresponds to the primary desktop of the right neighboring terminal of the current terminal, that is, according to the current relationship between the current terminal and other terminals
  • the terminal configures a virtual desktop, where the primary desktop corresponds to a physical screen, and the virtual desktop corresponds to a virtual screen.
  • the terminal group in Figure 1-2 is configured as shown in Figure 1-3.
  • terminal 1 For terminal 1, only the right-facing terminal is configured, and the right virtual desktop is configured for the terminal.
  • the left-side virtual terminal and the right-side virtual desktop are respectively configured for the terminal 2 to the terminal n-1.
  • the virtual desktop on the right side of the terminal 1 corresponds to the main desktop of the terminal 2
  • the virtual desktop on the left side of the terminal 2 corresponds to the main desktop of the terminal 1
  • the virtual desktop on the right side of the terminal 2 corresponds to the main desktop of the terminal 2
  • the left side of the terminal 3 is virtualized.
  • the desktop corresponds to the main desktop of the terminal 2
  • the virtual desktop on the right side of the terminal 3 corresponds to the main desktop of the terminal 4
  • the left virtual desktop of the terminal n-1 corresponds to the main desktop of the terminal n-2
  • the virtual desktop on the right side of 1 corresponds to the main desktop of terminal n
  • the virtual desktop on the left side of terminal n corresponds to the main desktop of terminal n-1.
  • the resolution of the display screen of each terminal it is generally necessary to consider the resolution of the display screen of each terminal, that is, configuring the virtual desktop for the current terminal according to the neighbor relationship between the current terminal and other terminals and the resolution of the display screen of other terminals.
  • the left virtual desktop corresponding to the resolution of the display screen of the terminal k-1 is configured, and the right virtual side of the display screen of the terminal k+1 is configured to be consistent.
  • the resolution of the first virtual desktop is consistent with the resolution of the primary desktop of the second terminal.
  • the first virtual desktop may be the virtual desktop on the right side of the first terminal, or may be the virtual desktop on the left side of the first terminal.
  • the first The virtual desktop is a virtual desktop on the right side of the first terminal.
  • the second terminal is a left-facing terminal of the first terminal
  • the first virtual desktop is a virtual desktop on the left side of the first terminal.
  • Step S102 The window data of the native window corresponding to the first mirror window is acquired by the second terminal to the window source terminal;
  • the native window is generally created on the window source terminal, and specifically may be an application window opened on the terminal.
  • the window source terminal may be adjacent to the first terminal or the second terminal, or may not be adjacent.
  • the window source terminal may be a terminal on both sides, that is, the terminal 1 And the terminal n may also be a terminal between the terminal 1 and the terminal n.
  • the second terminal may send the data acquisition window data request information to the window source terminal, and the window source terminal receives the window data request information, and returns the original window corresponding to the first mirror window to the second terminal according to the window data request information.
  • Window data may be sent to the window source terminal, and the window source terminal receives the window data request information, and returns the original window corresponding to the first mirror window to the second terminal according to the window data request information.
  • Step S103 Mirroring the first mirror window moved to the first virtual desktop to the main desktop of the second terminal according to the window data, to obtain a second mirror window.
  • the method further includes: in moving the first mirror window to the first virtual desktop, according to the first mirror window The location information in the first virtual desktop synchronously moves the second mirrored window on the primary desktop of the second terminal.
  • the method further includes: after the first mirror window is completely mirrored to the main desktop of the second terminal, the target of sending the mouse event information of the window source terminal is Changing the first terminal to the second terminal;
  • the second terminal determines whether the first mirror window is completely moved to the main desktop of the second terminal, that is, whether the first mirror window is completely mirrored to the main desktop of the second terminal, and if the second terminal determines the first The mirror window is completely moved into its own main desktop, that is, it is determined that the first mirror window has been completely mirrored to the main desktop of the second terminal, and mouse event request information is sent to the window source terminal, the window source terminal Transmitting a target of the mouse event information of the window source terminal from the first terminal to the second terminal according to the mouse event request information.
  • the method further includes: when the first mirror window is completely mirrored to the main desktop of the second terminal, stopping acquiring window data of the native window corresponding to the first mirror window to the window source terminal . Specifically, when determining that the first mirror window has been completely mirrored to the main desktop of the second terminal, the second terminal sends a stop sending window data request information to the window source terminal, and the window source terminal receives the window data. After requesting the information, the sending of the window data to the second terminal is stopped.
  • the first mirror window on the primary desktop of the first terminal is moved to the first virtual desktop configured in advance for the first terminal, and the first virtual desktop corresponds to the primary desktop of the second terminal.
  • Obtaining window data of the native window corresponding to the first mirror window from the window source terminal, and mirroring the first mirror window moved to the first virtual desktop to the second terminal according to the window data The first desktop window is obtained, and the first virtual desktop is configured in advance for the first terminal, and the first virtual desktop corresponds to the primary desktop of the second terminal, and the first mirror window on the primary desktop of the first terminal is first
  • the first virtual desktop moves, and the window data is obtained from the window source terminal that creates the native window, and the first mirror window moved to the first virtual desktop is mirrored to the second terminal according to the window data.
  • the main desktop so the first mirror window moved from a certain terminal can be moved to the second terminal. In this way, the mirror window can also be replaced by the second end.
  • Moving to the third terminal moving the mirroring window from the third terminal to the fourth terminal, and so on, can realize a window moving across the main desktop display of any of the multiple terminals, and only need to configure one or two for each terminal respectively.
  • a virtual desktop can be implemented without being limited by the performance of the terminal graphics card.
  • Embodiment 2 of the present invention provides a desktop window sharing method.
  • the second embodiment differs from the first embodiment in that the moving process of the native window is added in the second embodiment.
  • FIG. 2 is a schematic flowchart of an implementation process of a desktop window sharing method according to Embodiment 2 of the present invention. As shown in FIG. 2, the desktop window sharing method in this embodiment includes the following steps:
  • Step S201 moving the native window on the main desktop of the window source terminal to the second virtual desktop configured in advance for the window source terminal, where the second virtual desktop corresponds to the main desktop of the first terminal;
  • the first terminal is a left neighbor terminal or a right terminal of the window source terminal.
  • the second virtual desktop is a left virtual desktop of the window source terminal.
  • the first terminal is the right neighboring terminal of the window source terminal, the second virtual desktop is the right virtual desktop of the window source terminal.
  • Step S202 The window data of the native window is acquired by the first terminal to the window source terminal.
  • the first terminal may send data acquisition window data request information to the window source terminal, and the window source terminal receives the window data request information, and returns window data of the native window to the first terminal according to the window data request information.
  • Step S203 Mirroring the native window moved to the second virtual desktop to the main desktop of the first terminal according to the window data, to obtain the first mirror window;
  • the method further includes: in the process of moving the native window to the second virtual desktop, according to the location information of the native window in the second virtual desktop Simultaneously moving the first mirrored window on the primary desktop of the first terminal.
  • the method may further include: the window source terminal shielding the local response to the mouse message after detecting that the native window has been completely moved to the second virtual desktop. After the first terminal completely mirrors the native window to the main desktop of the first terminal, the first terminal sends a mouse event message request message to the window source terminal, where the mouse event message request information includes a mouse event message request command and a target terminal flag. The window source terminal determines the sending address of the mouse event message according to the target terminal flag in the mouse event message request command.
  • the method further includes: stopping, when the native window is completely moved to the second virtual desktop, the window data of the native window being acquired by the first terminal to the window source terminal.
  • Step S204 Move the first mirrored window on the primary desktop of the first terminal to the first virtual desktop configured in advance for the first terminal, where the first virtual desktop corresponds to the primary desktop of the second terminal;
  • Step S205 The window data of the native window corresponding to the first mirror window is acquired by the second terminal to the window source terminal;
  • Step S206 Mirroring the first mirror window moved to the first virtual desktop to the main desktop of the second terminal according to the window data, to obtain a second mirror window.
  • the method further includes: after the first mirror window is completely mirrored to the main desktop of the second terminal, the target of sending the mouse event information of the window source terminal is The first terminal is changed to the second terminal. In one embodiment, the method further includes: when the first mirror window is completely mirrored to the main desktop of the second terminal, stopping acquiring, in the second terminal, the first mirror window corresponding to the window source terminal The window data of the native window.
  • the first mirror window is obtained by moving the native window on the main desktop of the window source terminal to the main desktop of the first terminal, but this does not constitute a limitation of the solution of the present invention.
  • Other technical features in this embodiment are the same as those in the first embodiment, and are not described herein.
  • the foregoing neighboring refers to logical neighboring, and does not need to be physically adjacent.
  • the terminal k in FIG. 1-2 it is logically connected with the terminal k- 1 is adjacent to terminal k+1, but does not require terminal k to be physically adjacent to terminal k-1 and terminal k+1.
  • the window source terminal is the terminal 1 in FIG. 1-2, and the native window A0 displayed on the main desktop of the terminal 1 needs to be moved from the terminal 1 to the main desktop of the terminal 5 as an example.
  • the native window A0 is moved from the main desktop of the terminal 1 to the right virtual desktop of the terminal 1, and the native window A0 of the right virtual desktop is mirrored to the main desktop of the terminal 2 to obtain a mirrored window A1;
  • the mirror window A1 moves from the main desktop of the terminal 2 to the right virtual desktop of the terminal 2, and mirrors the mirror window A1 of the right virtual desktop to the main desktop of the terminal 3 to obtain a mirror window A2; and then, the mirror window is A2 moves from the main desktop of the terminal 3 to the right virtual desktop of the terminal 3, and mirrors the mirror window A2 in the right virtual desktop to the main desktop of the terminal 4 to obtain a mirror window A3;
  • the mirror window A3 is slaved from the terminal.
  • the main desktop of 4 moves to the virtual desktop on the right side of the terminal 4, and mirrors the mirror window A3 in the right virtual desktop to the main desktop of the terminal 5 to obtain a mirror window A4. Repeat the above actions, and you can continue to cross the main desktop of any number of terminals to the right.
  • the window source terminal is the terminal n in FIG. 1-2, and the native window B0 displayed on the main desktop of the terminal 1 needs to be moved from the terminal n to the main desktop of the terminal n-4. .
  • the native window B0 is moved from the main desktop of the terminal n to the left virtual desktop of the terminal 1, and the native window B0 of the left virtual desktop is mirrored to the main desktop of the terminal n-1 to obtain a mirrored window B1; Moving the mirror window B1 from the main desktop of the terminal n-1 to the left virtual desktop of the terminal n-1, and mirroring the mirror window B1 in the left virtual desktop to the main desktop of the terminal n-2 to obtain a mirror window.
  • the mirror window B2 is moved from the main desktop of the terminal n-2 to the left virtual desktop of the terminal 3, and mirrored from the mirror window B2 in the left virtual desktop to the main desktop of the terminal n-3, Mirror window B3; Finally, the mirror window B3 is moved from the main desktop of the terminal n-3 to the left virtual desktop of the terminal n-3, and the mirror window B3 in the left virtual desktop is mirrored to the main desktop of the terminal n-4. In the middle, get the mirror window B4. Repeat the above actions, and you can continue to cross the main desktop of any number of terminals to the left.
  • the window source terminal is the terminal k in FIG. 1-2, and the native window C0 displayed on the main desktop of the terminal k needs to be moved from the terminal k to the main desktop of the terminal k-2, and the terminal needs to be displayed.
  • the native window D0 displayed on the main desktop of k is displayed from the terminal k right to the main desktop of the terminal k+3 as an example for description.
  • the native window C0 is moved from the main desktop of the terminal k to the left virtual desktop of the terminal 1, and the native window C0 to the master of the terminal k-1 in the left virtual desktop are mirrored.
  • the mirror window C1 is obtained; then, the mirror window C1 is moved from the main desktop of the terminal k-1 to the left virtual desktop of the terminal k-1, and the mirror window C1 to the terminal k- in the left virtual desktop is mirrored.
  • the mirror window C2 is obtained.
  • the native window D0 is moved from the main desktop of the terminal k to the right virtual desktop of the terminal 1, and the native window D0 of the right virtual desktop is mirrored to the main desktop of the terminal k+1.
  • the mirror window D2 is obtained; finally, the mirror window D2 is moved from the main desktop of the terminal k+2 to the right virtual desktop of the terminal 3, and the mirror window D2 to the terminal k+3 in the right virtual desktop is mirrored.
  • the third embodiment of the present invention provides a desktop window sharing method.
  • the third embodiment differs from the second embodiment in that the instruction interaction process between the terminals is added in the third embodiment, and the window is moved to the right as an example for description.
  • FIG. 3 is a schematic flowchart of an implementation process of a desktop window sharing method according to Embodiment 2 of the present invention. As shown in FIG. 3, the desktop window sharing method of this embodiment includes the following steps:
  • Step S301 When the window source terminal detects that the native window on the main desktop moves to the right edge position, the first source indication information is sent to the first terminal, where the first image indication information includes a mirroring command, a source terminal identifier, and a window position. information;
  • the window source terminal detects that the native window on the main desktop moves to the right edge position, if there is a right virtual desktop, the window data of the native window is acquired, and the first image indication information is sent to the first terminal.
  • the first image indication information includes a mirroring command, a source terminal identifier, and window location information. If the right virtual desktop does not exist, the processing is not performed.
  • Step S302 The first terminal sends the first window data request information to the window source terminal corresponding to the source terminal identifier in response to the first image indication information, where the first window data request information includes a first target terminal identifier, where The first target terminal identifier is identifier information of the first terminal;
  • the first terminal receives the first image indication information
  • the source terminal identifier in the first image indication information determines that the source terminal identifier is not the local identifier, that is, the source terminal identifier is not the identifier of the first terminal
  • Step S303 After receiving the first window data request information, the window source terminal may, according to the first target terminal identifier, Returning, by the first terminal corresponding to the first target terminal identifier, the acquired window data;
  • the window source terminal determines, according to the first target terminal identifier, that the first target terminal identifier is not a local identifier, that is, the first target terminal identifier is not a window source terminal. Identifying, by the network, returning the acquired window data to the first terminal corresponding to the first target terminal identifier;
  • Step S304 The window source terminal moves the native window to the right virtual desktop configured in advance for the window source terminal;
  • the native window on the main desktop of the window source terminal is moved to the right virtual desktop configured in advance for the window source terminal in response to a user-triggered mouse movement message (or referred to as a mouse movement event).
  • Step S305 The first terminal mirrors the native window in the virtual desktop of the window source terminal to the main desktop of the first terminal according to the window data, to obtain a first mirror window.
  • the method may further include the step of: the window source terminal periodically sending the first window position to the first terminal during the process of determining that the native window is moved from the main desktop to the right virtual desktop.
  • Synchronization indication information, the first window position synchronization indication information includes a window position synchronization command and window position information; the first terminal receives the first window position synchronization indication information, and synchronously moves according to the window position information in the first window position synchronization indication information The first mirror window.
  • Step S306 When detecting that the first mirror window on the primary desktop moves to the right edge position, the first terminal sends the second image indication information to the second terminal, where the second image indication information includes a mirroring command, a source terminal identifier, and Window position information;
  • the second terminal sends the second image indication information to the first terminal, if the right virtual desktop does not exist, Not processed;
  • Step S307 The second terminal sends the second window data request information to the window source terminal corresponding to the data source identifier in the second mirror indication information, where the second window data request information includes a second target terminal identifier, where the second target terminal identifier is identifier information of the second terminal;
  • the second terminal receives the second image indication information, if the source terminal identifier in the second image indication information determines that the source terminal identifier is not the local identifier, that is, the source terminal identifier is not the identifier of the second terminal, And sending, by the network, the second window data request information to the corresponding window source terminal, and performing a corresponding display operation, for example, video rendering, based on the window position information in the second image indication information.
  • Step S308 After receiving the second window data request information, the window source terminal returns the mirror window corresponding to the second terminal according to the second target terminal identifier in the second window data request information. Window data of the native window;
  • the window source terminal determines, according to the second target terminal identifier, that the second target terminal identifier is not a local identifier (that is, the second target terminal identifier is not a window source terminal. And identifying, by the network, returning the acquired window data to the second terminal corresponding to the second target terminal identifier.
  • Step S309 The first terminal moves the first mirror window to a right virtual desktop configured in advance for the first terminal;
  • the first mirrored window on the primary desktop of the first terminal is moved to the right virtual desktop configured in advance for the first terminal in response to a user-triggered mouse movement message (or referred to as a mouse movement event).
  • Step S310 Mirroring the first mirror window in the virtual desktop of the first terminal to the main desktop of the second terminal according to the window data, to obtain a second mirror window;
  • the method may further include: the first terminal periodically sending the second terminal to the second terminal during the process of determining that the first mirror window is moved from the main desktop to the right virtual desktop.
  • the window indication information, the second window indication information includes a window position synchronization command and window position information; the second terminal receives the second window indication information, and synchronously moves the second mirror window according to the window position information in the second window indication information.
  • the third embodiment of the present invention provides a desktop window sharing method.
  • the third embodiment differs from the second embodiment in that the instruction interaction process between terminals is added in the third embodiment, and the window is moved to the left as an example for description.
  • FIG. 4 is a schematic flowchart of an implementation process of a desktop window sharing method according to Embodiment 2 of the present invention. As shown in FIG. 4, the desktop window sharing method of this embodiment includes the following steps:
  • Step S401 When the window source terminal detects that the native window on the main desktop moves to the left edge position, the first source image indication information is sent to the first terminal, where the first image indication information includes a mirroring command, a source terminal identifier, and a window position. information;
  • the window source terminal detects that the native window on the main desktop moves to the left edge position, if there is a left virtual desktop, the window data of the native window is acquired, and the first image indication information is sent to the first terminal.
  • the first image indication information includes a mirroring command, a source terminal identifier, and window location information. If the left virtual desktop does not exist, the processing is not processed.
  • Step S402 The first terminal sends, according to the first image indication information, the first window data request information to the window source terminal corresponding to the source terminal identifier, where the first window data request information includes a first target terminal identifier, where The first target terminal identifier is identifier information of the first terminal;
  • the first terminal receives the first image indication information
  • the source terminal identifier in the first image indication information determines that the source terminal identifier is not the local identifier, that is, the source terminal identifier is not the identifier of the first terminal
  • Step S403 After receiving the first window data request information, the window source terminal returns the acquired window data to the first terminal corresponding to the first target terminal identifier according to the first target terminal identifier;
  • the window source terminal determines, according to the first target terminal identifier, that the first target terminal identifier is not a local identifier, that is, the first target terminal identifier is not a window source terminal. Identifying, by the network, returning the acquired window data to the first terminal corresponding to the first target terminal identifier;
  • Step S404 The window source terminal moves the native window to the left virtual desktop configured in advance for the window source terminal;
  • the native window on the main desktop of the window source terminal is moved to the left virtual desktop configured in advance for the window source terminal in response to a user-triggered mouse movement message (or referred to as a mouse movement event).
  • Step S405 The first terminal mirrors the native window in the virtual desktop of the window source terminal to the main desktop of the first terminal according to the window data, to obtain a first mirror window.
  • the method may further include the step of: the window source terminal periodically sending the first window position to the first terminal during the process of determining that the native window is moved from the main desktop to the left virtual desktop.
  • Synchronization indication information, the first window position synchronization indication information includes a window position synchronization command and window position information; the first terminal receives the first window position synchronization indication information, and synchronously moves according to the window position information in the first window position synchronization indication information The first mirror window.
  • Step S406 When detecting that the first mirror window on the primary desktop moves to the left edge position, the first terminal sends the second image indication information to the second terminal, where the second image indication information includes a mirroring command, a source terminal identifier, and Window position information;
  • the second terminal sends the second image indication information to the first terminal, if there is no virtual desktop on the left side, Not processed;
  • Step S407 The second terminal sends the second window data request information to the window source terminal corresponding to the data source identifier in the second mirror indication information, where the second window data request information includes a second target terminal identifier, where the second target terminal identifier is identifier information of the second terminal;
  • the second terminal determines the source end based on the source terminal identifier in the second mirroring indication information. If the end identifier is not the local identifier (that is, the source terminal identifier is not the identifier of the second terminal), the second window data request information is sent to the corresponding window source terminal by the source terminal identifier, and is based on the second mirror indication information.
  • the window position information is subjected to a corresponding display operation, for example, video rendering.
  • Step S408 After receiving the second window data request information, the window source terminal returns the mirror window corresponding to the second terminal according to the second target terminal identifier in the second window data request information. Window data of the native window;
  • the window source terminal determines, according to the second target terminal identifier, that the second target terminal identifier is not a local identifier (that is, the second target terminal identifier is not a window source terminal. And identifying, by the network, returning the acquired window data to the second terminal corresponding to the second target terminal identifier.
  • Step S409 The first terminal moves the first mirror window to a left virtual desktop configured in advance for the first terminal;
  • the first mirrored window on the primary desktop of the first terminal is moved to the left virtual desktop configured in advance for the first terminal in response to a user-triggered mouse movement message (or referred to as a mouse movement event).
  • Step S410 Mirroring the first mirror window in the virtual desktop moved to the first terminal to the main desktop of the second terminal according to the window data, to obtain a second mirror window;
  • the method may further include: the first terminal periodically sending the second terminal to the second terminal during the process of determining that the first mirror window is moved from the main desktop to the left virtual desktop.
  • the window indication information, the second window indication information includes a window position synchronization command and window position information; the second terminal receives the second window indication information, and synchronously moves the second mirror window according to the window position information in the second window indication information.
  • the terminal identifier (including the first target terminal identifier, the second target terminal identifier, and the source terminal identifier) may be any identifier that can distinguish different terminals.
  • the terminal IP may be used as the terminal identifier, but is not limited thereto.
  • the present invention also provides a desktop window sharing system.
  • 5-1 is a schematic structural diagram 1 of a desktop window sharing system according to Embodiment 5 of the present invention.
  • the desktop window sharing system of the fifth embodiment includes at least a first terminal 501 and a second terminal 502.
  • the first terminal 501 includes a first mobile unit 5011
  • the second terminal 502 includes a first acquiring unit 5021.
  • the first mirroring unit 5022 :
  • the first mobile unit 5011 is configured to move the first mirrored window on the primary desktop of the first terminal 501 to the first virtual desktop configured in advance for the first terminal 501, where the first virtual desktop corresponds to the primary desktop of the second terminal 502;
  • the first obtaining unit 5021 is configured to acquire, in the second terminal 502, the window data of the native window corresponding to the first mirror window to the window source terminal;
  • the first mirroring unit 5022 is configured to mirror the first mirror window moved to the first virtual desktop to the main desktop of the second terminal 502 according to the window data to obtain a second mirror window.
  • the desktop window sharing system of the embodiment may further include a window source terminal 503.
  • the window source terminal 503 includes a second mobile unit 5031, and the first terminal further includes The second obtaining unit 5012 and the second mirroring unit 5013:
  • the second mobile unit 5031 is configured to move the native window on the main desktop of the window source terminal 503 to the second virtual desktop configured in advance for the window source terminal 503, where the second virtual desktop corresponds to the main desktop of the first terminal 501;
  • the second obtaining unit 5012 is configured to acquire the window data from the first terminal 501 to the window source terminal 503;
  • the second mirroring unit 5013 is configured to mirror the native window moved to the second virtual desktop to the primary desktop of the first terminal 501 according to the window data, to obtain the first mirrored window.
  • the second terminal 502 may further include a synchronization unit 5023;
  • the synchronization unit 5023 is configured to: according to the first mirror window, move the first mirror window to the first virtual desktop The location information in the first virtual desktop synchronously moves the second mirrored window on the primary desktop of the second terminal 502.
  • the window source terminal 503 may further include a mouse target changing unit 503 for mirroring the complete first mirror window to the first mirroring unit 5022. After the main desktop of the second terminal 502, the destination of the mouse event information of the window source terminal 503 is changed from the first terminal 501 to the second terminal 502.
  • the first obtaining unit 5021 is configured to stop acquiring the first mirror window corresponding to the window source terminal when the first mirroring unit 5022 mirrors the complete first mirror window to the main desktop of the second terminal 502. Window data for native windows.
  • the desktop window sharing system provided by the embodiment of the present invention needs to be pointed out that the above description of the desktop window sharing system is similar to the description of the desktop window sharing method described above, and has the beneficial effects of the desktop window sharing method described above, thereby saving
  • the description of the desktop window sharing method provided above please refer to the description of the desktop window sharing method provided above.
  • FIG. 6 is a schematic structural diagram of a desktop window sharing system according to Embodiment 6 of the present invention.
  • the desktop window sharing system of the sixth embodiment includes a third mobile unit 601, a third obtaining unit 602, and a third mirroring unit 603;
  • the third mobile unit 601 is configured to move the mirror window or the native window on the current terminal main desktop to the virtual desktop configured in advance for the current terminal, where the virtual desktop corresponds to the main desktop of the target terminal;
  • the current terminal is any one of the plurality of terminals, and refers to a window in which the mirror window or the native window is located before the current move
  • the target terminal is also any one of the plurality of terminals, and refers to a mirror window or a native window.
  • the third obtaining unit 602 is configured to acquire, when the mirror window or the native window moves to the virtual desktop corresponding to the current terminal main desktop, the window data of the corresponding native window to the window source terminal;
  • the third mirroring unit 603 is configured to mirror a mirror window or a native window in the virtual desktop corresponding to the current terminal main desktop to the current terminal main desktop according to the window data.
  • the desktop window sharing system provided by the embodiment of the present invention needs to be pointed out that the above description of the desktop window sharing system is similar to the description of the desktop window sharing method described above, and has the beneficial effects of the desktop window sharing method described above, thereby saving
  • the description of the desktop window sharing method provided above please refer to the description of the desktop window sharing method provided above.
  • the present invention can also improve a terminal, which includes the desktop window sharing system of the sixth embodiment.
  • FIG. 7 is a schematic structural diagram of a desktop window sharing system according to Embodiment 7 of the present invention. It should be noted that, in FIG. 7, a preferred solution is provided, and some modules in FIG. 7 may be included according to actual needs, and all modules in FIG. 7 may also be included.
  • the desktop window sharing system in the seventh embodiment includes an initialization configuration module 701, a window detection module 702, a control decision module 703, a mouse event message detection module 704, a window capture module 705, a video encoder module 706, and a network transmission module 707.
  • the initial configuration module 701 configures the current system when there is an actual left terminal physical screen/right terminal physical screen on the current terminal screen.
  • the left virtual desktop/right virtual desktop should be bound, and the network IP corresponding to the left and right terminals is bound.
  • the corresponding virtual screen and binding IP are not configured.
  • the window detection module 702 is configured to detect the window type, that is, the detection window is a mirror window (a rendering window created by the inventive scheme) or a native window (not a window created by the inventive scheme), and the position and resolution of the mirror window/native window.
  • the control decision module 703 is configured to: according to the configuration information, the window detection, or the data analysis result, specifically:
  • the notification window capture module 705 captures the native window video frame; and simultaneously sends the module 707 through the network.
  • the data (mirror command + source video IP + window position) is sent to the right (left) side terminal; if it does not exist, it is not processed.
  • the network sending module 707 transmits information to the terminal where the source video IP is located (request to stop the video + target IP), and destroys the mirror window.
  • the mouse event message detecting module 704 is notified to open the system response mouse event, and stop sending the mouse event message data to the network sending module.
  • the mouse event message detecting module 704 is configured to detect a system mouse event message and has a function of shielding/opening system response mouse event.
  • the window capture module 705 is configured to capture a specified window video frame.
  • the video encoder module 706 is configured to perform encoding compression processing on the window video frame.
  • the network sending module 707 assigns IP transmission data to the network.
  • the network receiving module 708 receives data sent on the network.
  • the data parsing module 709 parses the data format and distributes different data types to different modules for processing.
  • the video decoder module 710 performs decoding processing on the video compression encoded data.
  • the window video rendering module 711 creates a window video display at a specified location.
  • the window position synchronization module 712 moves the native/mirror window to the specified location.
  • the mouse event response module 713 processes mouse event messages from other terminals and then submits them to the operating system for response.
  • the window data is used as the window video frame
  • the terminal identifier is the IP of the terminal as an example.
  • this does not constitute a limitation of the solution of the present invention.
  • the system shown in FIG. 7 of the present invention is respectively operated on the terminal 1, the terminal 2, and the terminal 3.
  • the terminal 1, the terminal 2, and the terminal 3 are placed in order from left to right.
  • the terminal 1 has a desktop, and the terminal 2 exists on the right side. Therefore, the initial configuration module configures the main desktop of the right virtual desktop corresponding terminal 2 for the terminal 1;
  • the terminal 2 has a desktop, a terminal 1 exists on the left side, and a terminal 3 exists on the right side. Therefore, the initial configuration module is the terminal 2, and the main desktop of the virtual desktop corresponding terminal 1 is configured at the same time, and the main desktop of the right virtual desktop corresponding terminal 3 is configured.
  • the terminal 3 has a desktop, and the terminal 2 exists on the left side. Therefore, the initial configuration module configures the main desktop of the left virtual desktop corresponding terminal 2 for the terminal 3.
  • the window detecting module of the terminal 1 notifies the control decision module of the terminal 1 when the native window moves to the right edge of the main desktop.
  • the control decision module of the terminal 1 determines that the native window 1 moves to the right edge position B of the main desktop, and the notification window capture module captures the window video frame, and then sends the video frame to the video encoder for compression encoding, and then compresses the video stream. Send to the network sending module to wait for transmission. At the same time, the data is sent to the terminal 2 through the network sending module (image command + IP of the terminal 1 (source video IP) + location B).
  • the network receiving module of the terminal 2 After receiving the data sent by the terminal 1, the network receiving module of the terminal 2 sends the data to the data parsing module, and the parsing data is the mirroring command + the IP (source video IP) + location B of the terminal 1, and then submitted to the control decision module, and the control decision module.
  • the video transmission module transmits a video request command to the terminal IP (source video IP).
  • the decision module is controlled to send the position B information to the window position synchronization module.
  • the network receiving module of the terminal 1 After receiving the data, the network receiving module of the terminal 1 sends the data to the data parsing module, and after parsing the video request command of the terminal 2, the video request command + the target IP (the IP of the terminal 2) is submitted to the control decision module.
  • the control decision module determines that the target IP is not the local IP (IP of the terminal 1), and notifies the network sending module to send the video data to the terminal 2.
  • the network receiving module of the terminal 2 receives the data sent by the terminal 1, sends it to the data parsing module and parses it into video data, sends it to the video decoder module for decompression processing, and then sends it to the window video rendering module to create at the specified location B'.
  • Mirror window 1 is displayed.
  • the control decision module continuously transmits the module (the location of the synchronization command + the native window) to the terminal 2 through the network transmission module.
  • the control decision module After the terminal 2 receives (the position of the window position synchronization command + window), the control decision module notifies the window synchronization module to continuously update the position of the mirror window 1.
  • the mouse event message detecting module is notified to shield the operating system of the terminal 1 from responding to the mouse command. At this time, the user's mouse operation command through the terminal 1 is not responded to by the operating system of the terminal 1.
  • control decision module of the terminal 2 determines that the mirror window 1 has completely moved into the main desktop (position C')
  • it transmits to the terminal 1 source video IP
  • target IP terminal 2 IP
  • the control decision module determines that the target IP (the IP of the terminal 2) is not the local IP, so the notification, the network transmission module , the mouse information detected by the mouse event message is sent to Terminal 2.
  • the terminal 2 network receiving module receives the data sent by the terminal 1 and sends it to the data parsing module for parsing into a mouse event message, and then sends it to the mouse event response module for processing. At this time, the user responds at the terminal 2 through the mouse operation command of the terminal 1.
  • the window that the user continues to move with the mouse at this time is the mirror window 1 of the terminal 2, and the native window will stay at the position C.
  • the control decision module determines that the mirror window 1 moves to the right edge of the main desktop, and sends the module to the terminal 3 on the right side through the network sending module (mirror command + terminal 1) IP (source video IP) + location D') information.
  • the network receiving module of the terminal 3 After receiving the data of the terminal 2, the network receiving module of the terminal 3 sends it to the data parsing module and parses it into (image command + IP of the terminal 1 (source video IP) + position D'), and sends it to the control decision module.
  • the control decision module determines that the IP of the terminal 1 is not the local IP, and transmits the information (video request command + target IP (IP of the terminal 3)) to the terminal 1 through the network transmission module.
  • the network receiving module of the terminal 1 After receiving the data information of the terminal 3, the network receiving module of the terminal 1 sends it to the data parsing module and parses it into (video request command + target IP (IP of terminal 3)) and sends it to the control decision module.
  • the control decision module determines that the target IP is not the local IP (IP of the terminal 1), and notifies the network sending module to send the video data to the terminal 3.
  • the network receiving module of the terminal 3 after receiving the data sent by the terminal 1, sends the data to the data parsing module for parsing into video data, and sends it to the video decoder module for decompression processing, and then sends it to the window video rendering module to create a position D".
  • Mirror window 2 is displayed.
  • the control decision module continuously transmits the module (the position of the synchronization command + mirror window) to the terminal 3 through the network transmission module.
  • the control decision module After the terminal 3 receives (the position of the window position synchronization command + window), the control decision module notifies the window synchronization module to continuously update the position of the mirror window 2.
  • the network sending module sends information to the source video IP (terminal 1) (request to stop the video + target machine). IP (Terminal 2)), and destroy the mirror window 1 of the right virtual desktop location E'.
  • the terminal 1 control decision module When receiving the information requested by the data parsing module (request to stop video + target IP (terminal 2)), the terminal 1 control decision module notifies the network sending module to stop transmitting video data to the terminal 2.
  • control decision module of the terminal 3 determines that the mirror window 2 has completely moved into the main desktop (position E), it transmits to the terminal 1 (source video IP) (mouse event request command + target IP (terminal 3 IP) )information.
  • the control decision module determines that the target IP (the IP of the terminal 3) is not the local IP, so the notification, the network transmission module The target IP sent by the mouse information detected by the mouse event message is changed from the terminal 2 to the terminal 3.
  • the terminal 3 network receiving module receives the data sent by the terminal 1 and sends it to the data parsing module for parsing into a mouse event message, and then sends it to the mouse event response module for processing. At this time, the user responds at the terminal 3 through the mouse operation command of the terminal 1.
  • the window that the user continues to move by the mouse at this time is the mirror window 2 of the terminal 3, and the mirror window 2 can be moved to the main desktop position F" of the terminal 3.
  • the control decision module determines that the mirror window 2 moves to the left edge of the main desktop, and sends the module to the terminal 2 on the left side through the network sending module (mirror command + terminal) 1 IP (source video IP) + location G") information.
  • the network receiving module of the terminal 2 After receiving the data of the terminal 3, the network receiving module of the terminal 2 sends it to the data parsing module and parses it into (image command + IP of the terminal 1 (source video IP) + location G)), and sends it to the control decision module.
  • the control decision module When it is judged that the IP of the terminal 1 is not the local IP, the network transmission module transmits (video request command + target IP (IP of the terminal 2)) information to the terminal 1.
  • the network receiving module of the terminal 1 After receiving the data information of the terminal 2, the network receiving module of the terminal 1 sends it to the data parsing module and parses it into (video request command + target IP (IP of terminal 2)) and sends it to the control decision module.
  • the control decision module determines that the target IP is not the local IP (IP of the terminal 1), and notifies the network sending module to send the video data to the terminal 2.
  • the network receiving module of the terminal 2 After receiving the data sent by the terminal 1, the network receiving module of the terminal 2 sends the data to the data parsing module for parsing into video data, sends it to the video decoder module for decompression processing, and then sends it to the window video rendering module to create at the specified location G'.
  • Mirror window 3 is displayed.
  • the user controls the decision module to continuously send the module (the location of the synchronization command + window) to the terminal through the network transmission module.
  • the control decision module After the terminal 2 receives (the position of the synchronization command + window), the control decision module notifies the window synchronization module to continuously update the position of the mirror window 3.
  • the control decision module of the terminal 3 determines that the mirror window 2 has completely moved to the left virtual desktop (position H)
  • the information is sent to the source video IP (terminal 1) through the network sending module (request to stop the video + target machine) IP (Terminal 3)), and destroy the mirror window 2 of the left virtual desktop location H".
  • the terminal 1 control decision module When receiving the information (request to stop video + target IP (terminal 3)) sent by the data parsing module, the terminal 1 control decision module notifies the network sending module to stop transmitting video data to the terminal 3.
  • control decision module of the terminal 2 determines that the mirror window 3 has completely moved into the main desktop (position H'), it transmits to the terminal 1 (source video IP) (mouse event request command + target IP (terminal 2 IP) )information.
  • the control decision module determines that the target IP (the IP of the terminal 2) is not the local IP, so the notification, the network transmission module The target IP sent by the mouse information detected by the mouse event message is changed from the terminal 3 to the terminal 2.
  • the terminal 2 network receiving module receives the data sent by the terminal 1 and sends it to the data parsing module for parsing into a mouse event message, and then sends it to the mouse event response module for processing. At this time, the user responds at the terminal 2 through the mouse operation command of the terminal 1.
  • the window that the user continues to move by the mouse at this time is the mirror window 3 of the terminal 2, and the mirror window 3 can be moved to the terminal 2 main desktop position I'.
  • the control decision module of the terminal 2 determines that the mirror window 3 moves to the left edge of the main desktop, and sends the information to the left terminal 1 through the network sending module (image command + IP of the terminal 1 (source video IP) + location I') .
  • the network receiving module of the terminal 1 After receiving the data of the terminal 2, the network receiving module of the terminal 1 sends it to the data parsing module and parses it into (image command + IP of the terminal 1 (source video IP) + position I'), and sends it to the control decision module.
  • the control decision module determines that the source video IP is the local IP, and transmits the location information I' to the window location synchronization module to move the native window 1 from the location C to the location I.
  • the control decision module continuously transmits the module (the position of the synchronization command + window) to the terminal through the network sending module.
  • the control decision module After the terminal 1 receives (the position of the synchronization command + window), the control decision module notifies the window synchronization module to continuously update the position of the native window 1.
  • the network transmitting module transmits information to the source video IP (terminal 1) (request to stop the video + target machine). IP (Terminal 2)), and destroy the mirror window 3 of the left virtual desktop location J'.
  • the terminal 1 control decision module When receiving the information requested by the data parsing module (request to stop video + target IP (terminal 2)), the terminal 1 control decision module notifies the network sending module to stop transmitting video data to the terminal 2.
  • control decision module of the terminal 1 determines that the native window 1 has completely moved into the main desktop (position J), it notifies the mouse event message detection module development system to respond to the mouse event, and stops sending the mouse event message data to the network sending module.
  • the system of the terminal 1 can respond to the mouse event message, and the user moves the native window from the position J to the position A by the mouse.
  • the storage medium may be a magnetic disk, an optical disk, a read-only memory (ROM), or a random access memory (RAM).
  • the above-described integrated modules of the present invention may also be stored in a computer readable storage medium if implemented in the form of software functional modules and sold or used as separate products.
  • the technical solution of the embodiments of the present invention may be embodied in the form of a software product in essence or in the form of a software product stored in a storage medium, including a plurality of instructions.
  • a computer device (which may be a personal computer, server, or network device, etc.) is caused to perform all or part of the methods described in various embodiments of the present invention.
  • the descriptions of the various embodiments are all focused, and the parts that are not detailed in a certain embodiment can be referred to the related descriptions of other embodiments.
  • the disclosed methods and systems may be implemented in other manners.
  • the device embodiments described above are only schematic.
  • the division of the modules is only a logical function division.
  • there may be another division manner for example, multiple modules or components may be combined, or Can be integrated into another system, or some features can be ignored or not executed.
  • the coupling, or direct coupling, or communication connection of the components shown or discussed may be indirect coupling or communication connection through some interfaces, devices or modules, and may be electrical, mechanical or other forms. of.
  • each functional module in each embodiment of the present invention may be integrated into one processing module, or each module may be separately used as one module, or two or more modules may be integrated into one module;
  • the module can be implemented in the form of hardware or in the form of hardware plus software function modules.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种桌面窗口共享方法和系统,其方法包括:将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面(S101);在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据(S102);根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口(S103)。采用本方法,可以在不用受限于终端显卡性能的同时实现使应用窗口移动跨过任意多个终端桌面进行显示。

Description

桌面窗口共享方法和系统 技术领域
本发明涉及计算机数据共享技术领域,特别是涉及桌面窗口共享方法和系统。
背景技术
随着信息技术的不断发展,网络已成为信息传播的重要手段。基于远程控制与操作互动作为一种新的交互方式,让用户不需要身临其境便可以实现相同的互动,异地的观看与操作。其中桌面共享是数据共享中的一种重要应用,特别在网络视频会议、IM即时通讯工具等各类网络通讯系统中经常被用于文档展示、操作演示、协同办公等,是音视频、文本消息等交互方式重要且有效的补充。
现在,越来越多的用户为了避免在会议中频繁的拉动线缆,而使用桌面共享功能,通过无线的方式将控制终端,(例如,笔记本终端)桌面上的文档内容共享到显示终端上显示。为了实现应用窗口在多台终端屏幕间移动,传统方式中的一种桌面共享的方式是:首先在终端A上创建多个虚拟屏幕,例如,虚拟屏幕1、虚拟屏幕2,虚拟屏幕3;然后,将终端A上的窗口分别移动到各虚拟屏幕,例如,窗口1移动到虚拟屏幕1、窗口2移动到虚拟屏幕2、窗口3移动到虚拟屏幕3,最后,在不同显示屏幕上显示不同的虚拟屏幕中的窗口,例如,显示屏幕1显示窗口1的镜像窗口1、显示屏幕2显示窗口2的镜像窗口2、显示屏幕3显示窗口3的镜像窗口3。
上述的桌面共享的方式理论上只要共享桌面的终端(如上的终端A)显卡性能支持,可以尽可能多的扩展虚拟屏幕,从而达到横跨多个屏幕的目的。但实际上,受限于终端显卡性能,一般显卡性能只能虚拟1或2个屏幕,加上1个实际物理屏幕,总共能实现应用程序窗口在2~3个终端屏幕上移动。
发明内容
本发明的目的在于提供一种桌面窗口共享方法和系统,可以在不用受限于终端显卡性能的同时实现使应用窗口移动跨过任意多个终端桌面进行显示。
本发明的目的通过如下方案实现:
一种桌面窗口共享方法,包括:
将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口。
一种桌面窗口共享系统,至少包括第一终端和第二终端,所述第一终端包括第一移动单元,所述第二终端包括第一获取单元和第一镜像单元:
所述第一移动单元用于将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
所述第一获取单元用于在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
所述第一镜像单元用于根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口。
一种桌面窗口共享系统,包括第三移动单元、第三获取单元和第三镜像单元;
所述第三移动单元用于将当前终端主桌面上的镜像窗口或者原生窗口向预先为当前终端配置的虚拟桌面移动,所述虚拟桌面对应目标终端的主桌面;
所述第三获取单元用于在有镜像窗口或者原生窗口向对应所述当前终端主桌面的虚拟桌面移动时,向窗口源终端获取对应的原生窗口的窗口数据;
所述第三镜像单元用于根据所述窗口数据将移动至对应所述当前终端主桌面的虚拟桌面中的镜像窗口或者原生窗口镜像到所述当前终端主桌面。
根据上述本发明的方案,其是将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面,在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据,根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口,由于预先为第一终端配置了第一虚拟桌面,该第一虚拟桌面对应第二终端的主桌面,先将第一终端主桌面上的第一镜像窗口向该第一虚拟桌面移动,且由于是向创建原生窗口的窗口源终端获取窗口数据,并根据该窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,因此可以将从某个终端移动来的第一镜像窗口再移动到第二终端,采用这种方式,还可以将镜像窗口由第二终端向第三终端移动,再将镜像窗口由第三终端向第四终端移动,以此类推,可以实现一个窗口移动跨过任意多个终端的主桌面显示,且只需要每个终端分别配置一两个虚拟桌面即可以实现,不用受限于终端显卡性能。
附图说明
图1-1为本发明实施例一的桌面窗口共享方法的实现流程示意图;
图1-2为一个由依次排列的多个终端构成的终端群的组成结构示意图;
图1-3为图1-2中的终端群中的各终端的虚拟桌面的配置方式示意图;
图2为本发明实施例二的桌面窗口共享方法的实现流程示意图;
图3为本发明实施例三的桌面窗口共享方法的实现流程示意图;
图4为本发明实施例四的桌面窗口共享方法的实现流程示意图;
图5-1为本发明实施例五的桌面窗口共享系统的组成流程示意图一;
图5-2为本发明实施例五的桌面窗口共享系统的组成流程示意图二;
图5-3为本发明实施例五的桌面窗口共享系统的组成流程示意图三;
图5-4为本发明实施例五的桌面窗口共享系统的组成流程示意图四;
图6为本发明实施例六的桌面窗口共享系统的组成流程示意图;
图7为本发明实施例七的桌面窗口共享系统的组成流程示意图;
图8-1为本发明的一具体示例中的场景示意图;
图8-2为本发明的一具体示例中窗口移动过程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
实施例一
本发明实施例一提供一种桌面窗口共享方法。参见图1-1所示,为本发明实施例一的桌面窗口共享方法的实现流程示意图。如图1-1所示,本实施例的桌面窗口共享方法包括如下步骤:
步骤S101:将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
具体地,响应用户触发的鼠标移动消息(或称为鼠标移动事件)将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动。
这里,第一终端可以是终端群(由依次排列的多个终端构成)中的任意一个终端,例如,如图2所示,第一终端为终端群中的终端k。其中,终端群中的各终端均可以为包括移动终端,也可以为非移动终端,非移动终端包括台式计算机,移动终端包括智能手机(Smart Phone)、平板终端、笔记本终端、个人数字助理等。
这里,第一镜像窗口可以是第一终端的相邻终端向第一终端移动原生窗口或者镜像窗口后获得的,例如,第一镜像窗口是由终端k-1或者终端k+1向终端k移动原生窗口或者镜像窗口获得。这里,所述第二终端可以为所述第一终端的左邻终端或者右临终端,在所述第二终端为所述第一终端的左邻终端时,所述为所述第一终端配置的第一虚拟桌面为左侧虚拟桌面,在所述第二终端为所述第一终端的右邻终端时,所述为所述第一终端配置的第一虚拟桌面为右侧虚拟桌面。
为终端配置虚拟桌面的具体方式可以是:若当前终端(任意一个终端)具有左邻终端,则为该当前终端配置左侧虚拟桌面,该左侧虚拟桌面对应当前终端的左邻终端的主桌面,若当前终端具有右邻终端,则为该当前终端配置右侧虚拟桌面,该右侧虚拟桌面对应当前终端的右邻终端的主桌面,即根据当前终端与其他终端间的相邻关系为当前终端配置虚拟桌面,其中,主桌面对应的是物理屏幕,虚拟桌面对应的是虚拟屏幕。以图1-2中的终端群为例,其中的各终端置虚拟桌面的配置方式如图1-3所示,对于终端1仅具有右临终端,为其配置右侧虚拟桌面,对于终端n仅具有左邻终端,为其配置左侧虚拟桌面,对于终端2~终端n-1均具有左邻终端和右临终端,为这些终端分别配置左侧虚拟桌面和右侧虚拟桌面。其中,终端1的右侧虚拟桌面对应终端2的主桌面,终端2的左侧虚拟桌面对应终端1的主桌面,终端2的右侧虚拟桌面对应终端2的主桌面,终端3的左侧虚拟桌面对应终端2的主桌面,终端3的右侧虚拟桌面对应终端4的主桌面,......,终端n-1的左侧虚拟桌面对应终端n-2的主桌面,终端n-1的右侧虚拟桌面对应终端n的主桌面,终端n的左侧虚拟桌面对应终端n-1的主桌面。
此外,在为当前终端配置虚拟桌面时,一般还需要考虑各终端显示屏幕的分辨率,即根据当前终端与其他终端间的相邻关系以及其他终端的显示屏幕的分辨率为当前终端配置虚拟桌面。例如,对于图1-2的终端群中的终端k,配置与终端k-1的显示屏幕的分辨率一致的左侧虚拟桌面,配置终端k+1的显示屏幕的分辨率一致的右侧虚拟桌面。对于上述的第一虚拟桌面的分辨率与第二终端的主桌面的分辨率一致。
上述的第一虚拟桌面可以是第一终端的右侧虚拟桌面,也可以是第一终端的左侧虚拟桌面,一般地,在第二终端是第一终端的右临终端时,上述的第一虚拟桌面是第一终端的右侧虚拟桌面,在第二终端是第一终端的左临终端时,上述的第一虚拟桌面是第一终端的左侧虚拟桌面。
步骤S102:在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
这里,原生窗口一般是在所述窗口源终端上创建,具体可以为终端上打开的应用窗口。
这里,窗口源终端可以与第一终端或者第二终端相邻,也可以不相邻,此外,以图1-2中的终端群为例,窗口源终端可以是两侧的终端,即终端1和终端n,也可以是终端1和终端n中间的某个终端。
具体地,第二终端可以向窗口源终端发送数据获取窗口数据请求信息,窗口源终端接收到该窗口数据请求信息,根据该窗口数据请求信息向第二终端返回第一镜像窗口对应的原生窗口的窗口数据;
步骤S103:根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口。
考虑到窗口移动往往是非瞬时的,在其中一个实施例中,还可以包括:在将所述第一镜像窗口向所述第一虚拟桌面移动的过程中,根据所述第一镜像窗口在所述第一虚拟桌面中的位置信息同步移动所述第二终端的主桌面上的第二镜像窗口。
此外,在其中一个实施例中,还可包括:在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面后,将所述窗口源终端的鼠标事件信息的发送目标由所述第一终端更改为所述第二终端;
具体地,第二终端判断第一镜像窗口是否完全移动到自身的主桌面内,即判断所述第一镜像窗口是否完整的镜像到所述第二终端的主桌面,若第二终端判定第一镜像窗口完全移动到自身的主桌面内,即判定已将所述第一镜像窗口完整的镜像到所述第二终端的主桌面,则向窗口源终端发送鼠标事件请求信息,所述窗口源终端根据该鼠标事件请求信息将所述窗口源终端的鼠标事件信息的发送目标由所述第一终端更改为所述第二终端。
在其中一个实施例中,还可包括:在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面时,停止向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据。具体地,第二终端在判定已将所述第一镜像窗口完整的镜像到所述第二终端的主桌面时,向窗口源终端发送停止发送窗口数据请求信息,窗口源终端接收到该窗口数据请求信息后,停止向第二终端发送所述窗口数据。
根据上述本实施例的方案,其是将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面,在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据,根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口,由于预先为第一终端配置了第一虚拟桌面,该第一虚拟桌面对应第二终端的主桌面,先将第一终端主桌面上的第一镜像窗口向该第一虚拟桌面移动,且由于是向创建原生窗口的窗口源终端获取窗口数据,并根据该窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,因此可以将从某个终端移动来的第一镜像窗口再移动到第二终端,采用这种方式,还可以将镜像窗口由第二终端向第三终端移动,再将镜像窗口由第三终端向第四终端移动,以此类推,可以实现一个窗口移动跨过任意多个终端的主桌面显示,且只需要每个终端分别配置一两个虚拟桌面即可以实现,不用受限于终端显卡性能。
实施例二
本发明实施例二提供一种桌面窗口共享方法。本实施例二与实施例一的不同之处在于,在本实施例二中增加了原生窗口的移动过程。参见图2所示,为本发明实施例二的桌面窗口共享方法的实现流程示意图。如图2所示,本实施例二的桌面窗口共享方法包括如下步骤:
步骤S201:将窗口源终端主桌面上的原生窗口向预先为窗口源终端配置的第二虚拟桌面移动,所述第二虚拟桌面对应第一终端的主桌面;
这里,第一终端为窗口源终端的左邻终端或者右临终端,一般地,在第一终端为窗口源终端的左邻终端时,第二虚拟桌面为窗口源终端的左侧虚拟桌面,在第一终端为窗口源终端的右邻终端时,第二虚拟桌面为窗口源终端的右侧虚拟桌面。
步骤S202:在所述第一终端向窗口源终端获取所述原生窗口的窗口数据;
具体地,第一终端可以向窗口源终端发送数据获取窗口数据请求信息,窗口源终端接收到该窗口数据请求信息,根据该窗口数据请求信息向第一终端返回所述原生窗口的窗口数据。
步骤S203:根据所述窗口数据将移动至所述第二虚拟桌面中的原生窗口镜像到所述第一终端的主桌面,得到所述第一镜像窗口;
考虑到窗口移动往往是非瞬时的,在其中一个实施例中,还可以包括:在将原生窗口向第二虚拟桌面移动的过程中,根据所述原生窗口在所述第二虚拟桌面中的位置信息同步移动所述第一终端的主桌面上的第一镜像窗口。
此外,还可以包括:窗口源终端在检测到已将原生窗口完全移动至第二虚拟桌面后,屏蔽在本地响应鼠标消息的。第一终端在将原生窗口完整的镜像到所述第一终端的主桌面后,向窗口源终端发送鼠标事件消息请求信息,所述鼠标事件消息请求信息包括鼠标事件消息请求命令和目标终端标志,窗口源终端根据鼠标事件消息请求命令中目标终端标志确定鼠标事件消息的发送地址。
此外,还可以包括:在原生窗口完全移动至第二虚拟桌面时,停止所述的在所述第一终端向窗口源终端获取所述原生窗口的窗口数据。
步骤S204:将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
步骤S205:在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
步骤S206:根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口。
此外,在其中一个实施例中,还可以包括:在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面后,将所述窗口源终端的鼠标事件信息的发送目标由所述第一终端更改为所述第二终端。在其中一个实施例中,还可以包括:在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面时,停止在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据。
需要说明的是,在本实施例中第一镜像窗口是由窗口源终端主桌面上的原生窗口向第一终端的主桌面移动后获得的,但这并不构成对本发明方案的限定。本实施例中的其他技术特征与实施例一中的一致,在此不予赘述。
此外,需要说明的是,上述的相邻是指逻辑上的相邻,并不要求必须是物理上的相邻,例如,对于图1-2中的终端k,是在逻辑上与终端k-1和终端k+1相邻,但并不需要终端k必须在实际空间上与终端k-1和终端k+1相邻。
基于上述两个实施例的方案,以下通过几个示例针对几种不同的移动情形分别进行详细阐述。
示例1
本示例1是以窗口源终端为图1-2中的终端1、需要将终端1的主桌面上显示的原生窗口A0从终端1右移到终端5的主桌面上显示为例进行说明。
首先,将原生窗口A0从终端1的主桌面中移动到终端1的右侧虚拟桌面,并镜像该右侧虚拟桌面中的原生窗口A0到终端2的主桌面中,得到镜像窗口A1;接着,将镜像窗口A1从终端2的主桌面移动到终端2的右侧虚拟桌面,并镜像该右侧虚拟桌面中的镜像窗口A1到终端3的主桌面中,得到镜像窗口A2;再接着,将镜像窗口A2从终端3的主桌面移动到终端3的右侧虚拟桌面,并镜像该右侧虚拟桌面中的镜像窗口A2到终端4的主桌面中,得到镜像窗口A3;最后,将镜像窗口A3从终端4的主桌面移动到终端4的右侧虚拟桌面,并镜像该右侧虚拟桌面中的镜像窗口A3到终端5的主桌面中,得到镜像窗口A4。重复以上动作,还可以继续向右跨越任意多个终端的主桌面。
示例2
本示例2是以窗口源终端为图1-2中的终端n、需要将终端1的主桌面上显示的原生窗口B0从终端n左移到终端n-4的主桌面上显示为例进行说明。
首先,将原生窗口B0从终端n的主桌面中移动到终端1的左侧虚拟桌面,并镜像该左侧虚拟桌面中的原生窗口B0到终端n-1的主桌面中,得到镜像窗口B1;接着,将镜像窗口B1从终端n-1的主桌面移动到终端n-1的左侧虚拟桌面,并镜像该左侧虚拟桌面中的镜像窗口B1到终端n-2的主桌面中,得到镜像窗口B2;再接着,将镜像窗口B2从终端n-2的主桌面移动到终端3的左侧虚拟桌面,并镜像该左侧虚拟桌面中的镜像窗口B2到终端n-3的主桌面中,得到镜像窗口B3;最后,将镜像窗口B3从终端n-3的主桌面移动到终端n-3的左侧虚拟桌面,并镜像该左侧虚拟桌面中的镜像窗口B3到终端n-4的主桌面中,得到镜像窗口B4。重复以上动作,还可以继续向左跨越任意多个终端的主桌面。
示例3
本示例3是以窗口源终端为图1-2中的终端k、需要将终端k的主桌面上显示的原生窗口C0从终端k左移到终端k-2的主桌面上显示并需要将终端k的主桌面上显示的原生窗口D0从终端k右移到终端k+3的主桌面上显示为例进行说明。
对于原生窗口C0的左移操作,首先,将原生窗口C0从终端k的主桌面中移动到终端1的左侧虚拟桌面,并镜像该左侧虚拟桌面中的原生窗口C0到终端k-1的主桌面中,得到镜像窗口C1;接着,将镜像窗口C1从终端k-1的主桌面移动到终端k-1的左侧虚拟桌面,并镜像该左侧虚拟桌面中的镜像窗口C1到终端k-2的主桌面中,得到镜像窗口C2。
对于原生窗口D0的右移操作,将原生窗口D0从终端k的主桌面中移动到终端1的右侧虚拟桌面,并镜像该右侧虚拟桌面中的原生窗口D0到终端k+1的主桌面中,得到镜像窗口D1;接着,将镜像窗口D1从终端k+1的主桌面移动到终端k+1的右侧虚拟桌面,并镜像该右侧虚拟桌面中的镜像窗口D1到终端k+2的主桌面中,得到镜像窗口D2;最后,将镜像窗口D2从终端k+2的主桌面移动到终端3的右侧虚拟桌面,并镜像该右侧虚拟桌面中的镜像窗口D2到终端k+3的主桌面中,得到镜像窗口D3。
实施例三
根据上述的实施例一、实施例二,本发明的实施例三提供一种桌面窗口共享方法。本实施例三与实施例二的不同之处在于,在本实施例三中增加终端间的指令交互过程,且是以向右移动窗口为例进行说明。参见图3所示,为本发明实施例二的桌面窗口共享方法的实现流程示意图。如图3所示,本实施例的桌面窗口共享方法包括如下步骤:
步骤S301:窗口源终端在检测到主桌面上的原生窗口移动到右边缘位置时,向第一终端发送第一镜像指示信息,所述第一镜像指示信息包括镜像命令、源终端标识和窗口位置信息;
具体地,窗口源终端在检测到主桌面上的原生窗口移动到右边缘位置时,若存在右侧虚拟桌面,则获取所述原生窗口的窗口数据,并向第一终端发送第一镜像指示信息,所述第一镜像指示信息包括镜像命令、源终端标识和窗口位置信息,若不存在右侧虚拟桌面,则不处理。
步骤S302:第一终端响应所述第一镜像指示信息,向所述源终端标识对应的窗口源终端发送第一窗口数据请求信息,所述第一窗口数据请求信息包括第一目标终端标识,其中,第一目标终端标识为第一终端的标识信息;
具体地,第一终端接收到第一镜像指示信息后,若基于该第一镜像指示信息中的源终端标识判定源终端标识非本机标识(即源终端标识不是第一终端的标识),则通过网络向所述源终端标识对应的窗口源终端发送第一窗口数据请求信息,并基于第一镜像指示信息中的窗口位置信息进行相应的显示操作,例如,视频渲染。
步骤S303:所述窗口源终端在接收所述第一窗口数据请求信息后,根据所述第一目标终端标识向所述 第一目标终端标识对应的第一终端返回所获取的窗口数据;
具体地,所述窗口源终端在接收所述第一窗口数据请求信息后,根据所述第一目标终端标识判断第一目标终端标识非本机标识(即第一目标终端标识不是窗口源终端的标识),则通过网络向所述第一目标终端标识对应的第一终端返回所获取的窗口数据;
步骤S304:窗口源终端将所述原生窗口向预先为所述窗口源终端配置的右侧虚拟桌面中移动;
具体地,响应用户触发的鼠标移动消息(或称为鼠标移动事件)将窗口源终端主桌面上的原生窗口向预先为窗口源终端配置的右侧虚拟桌面移动。
步骤S305:第一终端根据所述窗口数据将移动至所述窗口源终端的虚拟桌面中的所述原生窗口镜像到所述第一终端的主桌面,得到第一镜像窗口;
考虑到窗口移动是非瞬时的,为此,还可以包括步骤:窗口源终端在判定所述原生窗口处在由主桌面移动到右侧虚拟桌面的过程中,定时向第一终端发送第一窗口位置同步指示信息,第一窗口位置同步指示信息包括窗口位置同步命令和窗口位置信息;第一终端在接收到第一窗口位置同步指示信息,根据第一窗口位置同步指示信息中的窗口位置信息同步移动第一镜像窗口。
步骤S306:第一终端在检测到主桌面上的第一镜像窗口移动到右边缘位置时,发送第二镜像指示信息至第二终端,所述第二镜像指示信息包括镜像命令、源终端标识和窗口位置信息;
具体地,第一终端在检测到主桌面上的原生窗口移动到右边缘位置时,若存在右侧虚拟桌面,则向第一终端发送第二镜像指示信息,若不存在右侧虚拟桌面,则不处理;
步骤S307:第二终端响应所述第二镜像指示信息,向所述第二镜像指示信息中的数据源标识对应的窗口源终端发送第二窗口数据请求信息,所述第二窗口数据请求信息包括第二目标终端标识,其中,第二目标终端标识为第二终端的标识信息;
具体地,第二终端接收到第二镜像指示信息后,若基于该第二镜像指示信息中的源终端标识判定源终端标识非本机标识(即源终端标识不是第二终端的标识),则通过网络向所述源终端标识对应的窗口源终端发送第二窗口数据请求信息,并基于第二镜像指示信息中的窗口位置信息进行相应的显示操作,例如,视频渲染。
步骤S308:窗口源终端在接收第二所述窗口数据请求信息后,根据所述第二所述窗口数据请求信息中的所述第二目标终端标识向所述第二终端返回所述镜像窗口对应的原生窗口的窗口数据;
具体地,所述窗口源终端在接收所述第二窗口数据请求信息后,根据所述第二目标终端标识判断第二目标终端标识非本机标识(即第二目标终端标识不是窗口源终端的标识),则通过网络向所述第二目标终端标识对应的第二终端返回所获取的窗口数据。
步骤S309:第一终端将所述第一镜像窗口向预先为第一终端配置的右侧虚拟桌面中移动;
具体地,响应用户触发的鼠标移动消息(或称为鼠标移动事件)将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的右侧虚拟桌面移动。
步骤S310:根据所述窗口数据将移动至所述第一终端的虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口;
考虑到窗口移动是非瞬时的,为此,还可以包括步骤:第一终端在判定所述第一镜像窗口处在由主桌面移动到右侧虚拟桌面的过程中,定时向第二终端发送第二窗口指示信息,第二窗口指示信息包括窗口位置同步命令和窗口位置信息;第二终端在接收到第二窗口指示信息,根据第二窗口指示信息中的窗口位置信息同步移动第二镜像窗口。
实施例四
根据上述的实施例一、实施例二,本发明的实施例三提供一种桌面窗口共享方法。本实施例三与实施例二的不同之处在于,在本实施例三中增加终端间的指令交互过程,且是以向左移动窗口为例进行说明。参见图4所示,为本发明实施例二的桌面窗口共享方法的实现流程示意图。如图4所示,本实施例的桌面窗口共享方法包括如下步骤:
步骤S401:窗口源终端在检测到主桌面上的原生窗口移动到左边缘位置时,向第一终端发送第一镜像指示信息,所述第一镜像指示信息包括镜像命令、源终端标识和窗口位置信息;
具体地,窗口源终端在检测到主桌面上的原生窗口移动到左边缘位置时,若存在左侧虚拟桌面,则获取所述原生窗口的窗口数据,并向第一终端发送第一镜像指示信息,所述第一镜像指示信息包括镜像命令、源终端标识和窗口位置信息,若不存在左侧虚拟桌面,则不处理。
步骤S402:第一终端响应所述第一镜像指示信息,向所述源终端标识对应的窗口源终端发送第一窗口数据请求信息,所述第一窗口数据请求信息包括第一目标终端标识,其中,第一目标终端标识为第一终端的标识信息;
具体地,第一终端接收到第一镜像指示信息后,若基于该第一镜像指示信息中的源终端标识判定源终端标识非本机标识(即源终端标识不是第一终端的标识),则通过网络向所述源终端标识对应的窗口源终端发送第一窗口数据请求信息,并基于第一镜像指示信息中的窗口位置信息进行相应的显示操作,例如,视频渲染。
步骤S403:所述窗口源终端在接收所述第一窗口数据请求信息后,根据所述第一目标终端标识向所述第一目标终端标识对应的第一终端返回所获取的窗口数据;
具体地,所述窗口源终端在接收所述第一窗口数据请求信息后,根据所述第一目标终端标识判断第一目标终端标识非本机标识(即第一目标终端标识不是窗口源终端的标识),则通过网络向所述第一目标终端标识对应的第一终端返回所获取的窗口数据;
步骤S404:窗口源终端将所述原生窗口向预先为所述窗口源终端配置的左侧虚拟桌面中移动;
具体地,响应用户触发的鼠标移动消息(或称为鼠标移动事件)将窗口源终端主桌面上的原生窗口向预先为窗口源终端配置的左侧虚拟桌面移动。
步骤S405:第一终端根据所述窗口数据将移动至所述窗口源终端的虚拟桌面中的所述原生窗口镜像到所述第一终端的主桌面,得到第一镜像窗口;
考虑到窗口移动是非瞬时的,为此,还可以包括步骤:窗口源终端在判定所述原生窗口处在由主桌面移动到左侧虚拟桌面的过程中,定时向第一终端发送第一窗口位置同步指示信息,第一窗口位置同步指示信息包括窗口位置同步命令和窗口位置信息;第一终端在接收到第一窗口位置同步指示信息,根据第一窗口位置同步指示信息中的窗口位置信息同步移动第一镜像窗口。
步骤S406:第一终端在检测到主桌面上的第一镜像窗口移动到左边缘位置时,发送第二镜像指示信息至第二终端,所述第二镜像指示信息包括镜像命令、源终端标识和窗口位置信息;
具体地,第一终端在检测到主桌面上的原生窗口移动到左边缘位置时,若存在左侧虚拟桌面,则向第一终端发送第二镜像指示信息,若不存在左侧虚拟桌面,则不处理;
步骤S407:第二终端响应所述第二镜像指示信息,向所述第二镜像指示信息中的数据源标识对应的窗口源终端发送第二窗口数据请求信息,所述第二窗口数据请求信息包括第二目标终端标识,其中,第二目标终端标识为第二终端的标识信息;
具体地,第二终端接收到第二镜像指示信息后,若基于该第二镜像指示信息中的源终端标识判定源终 端标识非本机标识(即源终端标识不是第二终端的标识),则通过网络向所述源终端标识对应的窗口源终端发送第二窗口数据请求信息,并基于第二镜像指示信息中的窗口位置信息进行相应的显示操作,例如,视频渲染。
步骤S408:窗口源终端在接收第二所述窗口数据请求信息后,根据所述第二所述窗口数据请求信息中的所述第二目标终端标识向所述第二终端返回所述镜像窗口对应的原生窗口的窗口数据;
具体地,所述窗口源终端在接收所述第二窗口数据请求信息后,根据所述第二目标终端标识判断第二目标终端标识非本机标识(即第二目标终端标识不是窗口源终端的标识),则通过网络向所述第二目标终端标识对应的第二终端返回所获取的窗口数据。
步骤S409:第一终端将所述第一镜像窗口向预先为第一终端配置的左侧虚拟桌面中移动;
具体地,响应用户触发的鼠标移动消息(或称为鼠标移动事件)将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的左侧虚拟桌面移动。
步骤S410:根据所述窗口数据将移动至所述第一终端的虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口;
考虑到窗口移动是非瞬时的,为此,还可以包括步骤:第一终端在判定所述第一镜像窗口处在由主桌面移动到左侧虚拟桌面的过程中,定时向第二终端发送第二窗口指示信息,第二窗口指示信息包括窗口位置同步命令和窗口位置信息;第二终端在接收到第二窗口指示信息,根据第二窗口指示信息中的窗口位置信息同步移动第二镜像窗口。
上述的终端标识(包括第一目标终端标识、第二目标终端标识和源终端标识)可以为任意可区分不同终端的标识,一般可以选用终端IP作为终端标识,但也不限于此。
实施例五
根据上述实施例中的桌面窗口共享方法,本发明还提供一种桌面窗口共享系统。图5-1为本发明实施例五的桌面窗口共享系统的组成结构示意图一。如图5-1所示,本实施例五的桌面窗口共享系统至少包括第一终端501和第二终端502,第一终端501包括第一移动单元5011,第二终端502包括第一获取单元5021和第一镜像单元5022:
第一移动单元5011用于将第一终端501主桌面上的第一镜像窗口向预先为第一终端501配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端502的主桌面;
第一获取单元5021用于在第二终端502向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
第一镜像单元5022用于根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到第二终端502的主桌面,得到第二镜像窗口。
在其中一个实施例中,如图5-2所示,本实施例的桌面窗口共享系统,还可以包括窗口源终端503,窗口源终端503包括第二移动单元5031,所述第一终端还包括第二获取单元5012和第二镜像单元5013:
第二移动单元5031用于将窗口源终端503主桌面上的所述原生窗口向预先为窗口源终端503配置的第二虚拟桌面移动,所述第二虚拟桌面对应第一终端501的主桌面;
第二获取单元5012用于在所述第一终端501向窗口源终端503获取所述窗口数据;
第二镜像单元5013用于根据所述窗口数据将移动至所述第二虚拟桌面中的原生窗口镜像到第一终端501的主桌面,得到所述第一镜像窗口。
在其中一个实施例中,如图5-3所示,第二终端502还可以包括同步单元5023;
同步单元5023用于在将所述第一镜像窗口向所述第一虚拟桌面移动的过程中,根据所述第一镜像窗 口在所述第一虚拟桌面中的位置信息同步移动第二终端502的主桌面上的第二镜像窗口。
在其中一个实施例中,如图5-4所示,窗口源终端503还可以包括鼠标目标更改单元,鼠标目标更改单元503用于在第一镜像单元5022将完整的第一镜像窗口镜像到第二终端502的主桌面后,将窗口源终端503的鼠标事件信息的发送目标由第一终端501更改为第二终端502。
在其中一个实施例中,第一获取单元5021用于在第一镜像单元5022将完整的第一镜像窗口镜像到第二终端502的主桌面时,停止向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据。
本发明实施例提供的桌面窗口共享系统,需要指出的是:以上对于桌面窗口共享系统的描述,与上述桌面窗口共享方法的描述是类似的,并且具有上述桌面窗口共享方法的有益效果,为节约篇幅,不再赘述;因此,以上对本发明实施例提供的桌面窗口共享系统中未披露的技术细节,请参照上述提供的桌面窗口共享方法的描述。
实施例六
根据上述实施例中的桌面窗口共享方法,本发明还提供一种桌面窗口共享系统。图6为本发明实施例六的桌面窗口共享系统的组成结构示意图。如图6所示,本实施例六的桌面窗口共享系统包括第三移动单元601、第三获取单元602和第三镜像单元603;
第三移动单元601用于将当前终端主桌面上的镜像窗口或者原生窗口向预先为当前终端配置的虚拟桌面移动,所述虚拟桌面对应目标终端的主桌面;
这里,当前终端是多个终端中的任意一个终端,是指镜像窗口或者原生窗口本次移动前所在的窗口,而目标终端也是多个终端中的任意一个终端,是指镜像窗口或者原生窗口本次移动后所在的窗口;
第三获取单元602用于在有镜像窗口或者原生窗口向对应所述当前终端主桌面的虚拟桌面移动时,向窗口源终端获取对应的原生窗口的窗口数据;
第三镜像单元603用于根据所述窗口数据将移动至对应所述当前终端主桌面的虚拟桌面中的镜像窗口或者原生窗口镜像到所述当前终端主桌面。
本发明实施例提供的桌面窗口共享系统,需要指出的是:以上对于桌面窗口共享系统的描述,与上述桌面窗口共享方法的描述是类似的,并且具有上述桌面窗口共享方法的有益效果,为节约篇幅,不再赘述;因此,以上对本发明实施例提供的桌面窗口共享系统中未披露的技术细节,请参照上述提供的桌面窗口共享方法的描述。
根据本发明实施例六的桌面窗口共享系统,本发明还可以提高一种终端,该终端包括实施例六的桌面窗口共享系统。
实施例七
基于上述各实施例,本发明实施例七提供一种较佳的桌面窗口共享系统,如图7所示,为本发明实施例七的桌面窗口共享系统的组成结构示意图。需要说明的是图7中的提供的是一种较佳的方案,根据实际需要可以包括图7中的部分模块,也可以包括图7中的全部模块。
本实施例七中的桌面窗口共享系统包括初始化配置模块701、窗口检测模块702、控制决策模块703、鼠标事件消息检测模块704、窗口抓取模块705、视频编码器模块706、网络发送模块707、网络接收模块708、数据解析模块709、视频解码器模块710、窗口视频渲染模块711、窗口位置同步模块712、鼠标事件响应模块713。
初始化配置模块701在当前终端屏幕存在实际左终端物理屏幕/右终端物理屏幕时,为当前系统配置对 应的左虚拟桌面/右虚拟桌面,并绑定对应左右终端的网络IP,在当前终端屏幕不存在实际左终端物理屏幕/右终端物理屏幕时,不配置对应虚拟屏幕和绑定IP。
窗口检测模块702用于检测窗口类型,即检测窗口是镜像窗口(由本发明方案创建的渲染窗口)或原生窗口(不是本发明方案创建的窗口),以及镜像窗口/原生窗口的位置和分辨率。
控制决策模块703,用于根据配置信息、窗口检测或数据解析结果,具体地:
(A)在判定原生窗口移动至主桌面右(左)边缘位置时,若存在右(左)侧虚拟桌面,则通知窗口抓取模块705抓取原生窗口视频帧;同时通过网络发送模块707,将数据(镜像命令+源视频IP+窗口位置)发送给右(左)侧终端;若不存在,则不处理。
(B)判断原生窗口在由主桌面移动到右(左)侧虚拟桌面的过程中,定时通过网络发送模块706向右(左)侧终端发送(窗口位置同步命令+位置信息)。
(C)接收到数据解析模块709送来的(镜像命令+源视频IP+窗口位置)信息,判断源视频IP非本机IP,则通过网络发送模块,将(视频请求命令+目标机IP(本机IP))发送给源视频IP的终端;同时将窗口位置信息发送给窗口视频渲染711模块。若是本机IP,则将位置信息发送给窗口位置同步模块同步原生窗口位置。
(D)接收到数据解析模块709送来的(窗口位置同步命令+位置信息)信息,通知窗口位置同步模块712移动窗口位置。
(E)判定原生窗口完全移动至右(左)侧虚拟桌面内,则通知鼠标事件消息检测模块704屏蔽系统响应鼠标消息。
(F)判定镜像窗口由左(右)侧虚拟屏幕完全移动至主桌面内,则通过网络发送模块707向源视频IP所在终端发送(鼠标事件消息请求命令+目标机IP(本机IP))信息。
(G)判定镜像窗口移动至主桌面右(左)侧边缘位置时,若存在右(左)侧虚拟桌面,则通过网络发送模块发送数据(镜像命令+源视频IP+窗口位置)到右(左)侧终端;若不存在,则不处理。
(H)判定镜像窗口由主桌面移动到右(左)侧虚拟桌面的过程中,定时通过网络发送模块707向右(左)侧终端发送(窗口位置同步命令+位置信息)。
(I)判断镜像窗口完全移动至右(左)侧虚拟桌面内时,通过网络发送模块707向源视频IP所在终端发送信息(请求停止视频+目标机IP),并销毁镜像窗口。
(J)接收到数据解析模块709送来的(请求停止视频+目标机IP)信息时,通知网络发送模块707,停止向目标机IP发送视频数据。
(K)接收到数据解析模块709送来的(鼠标请求命令+目标机IP)信息,判断目标机IP非本机IP,则通知网络发送模块707更换鼠标事件消息数据发送地址为当前目标机IP;
(L)判断原生窗口由右(左)侧虚拟桌面移回至主桌面时,通知鼠标事件消息检测模块704开放系统响应鼠标事件,并停止向网络发送模块发送鼠标事件消息数据。
鼠标事件消息检测模块704,用于检测系统鼠标事件消息,具有屏蔽/开放系统响应鼠标事件功能。
窗口抓取模块705,用于抓取指定窗口视频帧。
视频编码器模块706,用于对窗口视频帧进行编码压缩处理。
网络发送模块707,向网络指定IP发送数据。
网络接收模块708,接收网络上发来的数据。
数据解析模块709,解析数据格式,将不同的数据类型分发给不同的模块处理。
视频解码器模块710,对视频压缩编码数据进行解码处理。
窗口视频渲染模块711,在指定位置创建窗口视频显示。
窗口位置同步模块712,将原生/镜像窗口移动到指定位置。
鼠标事件响应模块713,处理其他终端传来的鼠标事件消息,然后提交给操作系统响应。
需要说明的是,在本实施例中,是以窗口数据为窗口视频帧,终端标识为终端的IP为例进行说明,但这并不构成对本发明方案的限定。
为了便于理解本发明的方案,以下通过一个具体的示例进行说明。在本示例中仅以3台终端为例,将终端1桌面上的原生窗口1由位置A移动到终端3的主桌面的位置F”上显示,然后再从终端3桌面移动回终端1的桌面位置A的过程。
在终端1、终端2和终端3上分别运行本发明的如图7所示的系统,如图8-1所示,终端1、终端2和终端3按照从左到右依次放置。
终端1桌面,右侧存在终端2,因此初始化配置模块为终端1配置右侧虚拟桌面对应终端2的主桌面;
终端2桌面,左侧存在终端1,右侧存在终端3,因此初始化配置模块为终端2同时配置左侧虚拟桌面对应终端1的主桌面,配置右侧虚拟桌面对应终端3的主桌面;
终端3桌面,左侧存在终端2,因此初始化配置模块为终端3配置左侧虚拟桌面对应终端2的主桌面。
用户使用终端1的鼠标将原生窗口1由位置A移动到主桌面右侧边缘位置B时,终端1的窗口检测模块检测到原生窗口移动至主桌面右侧边缘时,通知终端1的控制决策模块。
终端1的控制决策模块,判定原生窗口1移动到主桌面右侧边缘位置B时,通知窗口抓取模块抓取该窗口视频帧,然后送到视频编码器进行压缩编码,然后将视频压缩码流送到网络发送模块等待发送。同时通过网络发送模块发送(镜像命令+终端1的IP(源视频IP)+位置B)数据到终端2。
终端2的网络接收模块接收到终端1发的数据后,送到数据解析模块,解析数据为镜像命令+终端1的IP(源视频IP)+位置B后,提交给控制决策模块,控制决策模块判定源视频IP非本机IP(终端2的IP)时,通过网络发送模块向终端IP(源视频IP)发送视频请求命令。同时控制决策模块,将位置B信息送到窗口位置同步模块。
终端1的网络接收模块,接收到数据后,送到数据解析模块,解析为终端2的视频请求命令后,将(视频请求命令+目标机IP(终端2的IP))提交控制决策模块。控制决策模块,判断目标机IP不是本机IP(终端1的IP),则通知网络发送模块向终端2发送视频数据。
终端2的网络接收模块,接收到终端1发送的数据后,送到数据解析模块解析为视频数据,送到视频解码器模块进行解压缩处理,然后送到窗口视频渲染模块在指定位置B’创建镜像窗口1显示。
用户在终端1将原生窗口由主桌面位置B移动到虚拟桌面位置C的过程中,控制决策模块,不断通过网络发送模块,将(同步命令+原生窗口的位置)信息发送给终端2。
终端2收到(窗口位置同步命令+窗口的位置)后,由控制决策模块,通知窗口同步模块,不断同步更新镜像窗口1的位置。
当终端1的控制决策模块,判断原生窗口已完全移动到右侧虚拟桌面内(位置C)时,则通知鼠标事件消息检测模块屏蔽终端1的操作系统响应鼠标命令。此时,用户通过终端1的鼠标操作命令不被终端1的操作系统响应。
同时当终端2的控制决策模块,判断镜像窗口1已完全移动到主桌面内(位置C’)时,则向终端1(源视频IP)发送(鼠标事件请求命令+目标机IP(终端2的IP))信息。
终端1接收到终端2的(鼠标事件消息请求命令+终端2的IP(目标机IP))后,控制决策模块判断目标机IP(终端2的IP)不是本机IP,因此通知,网络发送模块,将鼠标事件消息检测的鼠标信息发送给 终端2。
终端2网络接收模块,接收到终端1发送的数据,送到数据解析模块解析为鼠标事件消息,则送到鼠标事件响应模块处理。此时,用户通过终端1的鼠标操作命令在终端2响应。
用户此时通过鼠标继续移动的窗口为终端2的镜像窗口1,而原生窗口将停留在位置C。
用户将镜像窗口1,由位置C’移动至位置D’时,控制决策模块判断镜像窗口1移动至主桌面右侧边缘,则通过网络发送模块向右侧的终端3发送(镜像命令+终端1的IP(源视频IP)+位置D’)信息。
终端3的网络接收模块接收到终端2的数据后,送到数据解析模块解析为(镜像命令+终端1的IP(源视频IP)+位置D’),送到控制决策模块。控制决策模块,判断终端1的IP非本机IP,则通过网络发送模块向终端1发送(视频请求命令+目标机IP(终端3的IP))信息。
终端1的网络接收模块接收到终端3的数据信息后,送到数据解析模块解析为(视频请求命令+目标机IP(终端3的IP)),送到控制决策模块。控制决策模块,判断目标机IP不是本机IP(终端1的IP),则通知网络发送模块向终端3发送视频数据。
终端3的网络接收模块,接收到终端1发送的数据后,送到数据解析模块解析为视频数据,送到视频解码器模块进行解压缩处理,然后送到窗口视频渲染模块在指定位置D”创建镜像窗口2显示。
用户在终端2将镜像窗口1由主桌面位置D’移动到虚拟桌面位置E’的过程中,控制决策模块,不断通过网络发送模块,将(同步命令+镜像窗口的位置)信息发送给终端3。
终端3收到(窗口位置同步命令+窗口的位置)后,由控制决策模块,通知窗口同步模块,不断同步更新镜像窗口2的位置。
当终端2的控制决策模块,判断镜像窗口1已完全移动到右侧虚拟桌面内(位置E’)时,则通过网络发送模块向源视频IP(终端1)发送信息(请求停止视频+目标机IP(终端2)),并销毁右侧虚拟桌面位置E’的镜像窗口1。
终端1控制决策模块接收到数据解析模块送来的(请求停止视频+目标机IP(终端2))信息时,通知网络发送模块,停止向终端2发送视频数据。
终端3的控制决策模块,判断镜像窗口2已完全移动到主桌面内(位置E”)时,则向终端1(源视频IP)发送(鼠标事件请求命令+目标机IP(终端3的IP))信息。
终端1接收到终端3的(鼠标事件消息请求命令+终端3的IP(目标机IP))后,控制决策模块判断目标机IP(终端3的IP)不是本机IP,因此通知,网络发送模块,将鼠标事件消息检测的鼠标信息发送的目标IP由终端2改为终端3。
终端3网络接收模块,接收到终端1发送的数据,送到数据解析模块解析为鼠标事件消息,则送到鼠标事件响应模块处理。此时,用户通过终端1的鼠标操作命令在终端3响应。
用户此时通过鼠标继续移动的窗口为终端3的镜像窗口2,可将镜像窗口2移动至终端3主桌面位置F”处。
以上,就完成了将窗口由终端1桌面位置A移动至终端3桌面位置F”过程。以下,说明将窗口由终端3桌面位置F”移回至终端1桌面位置A的过程。
用户将终端3的镜像窗口由位置F”移动至位置G”时,控制决策模块判断镜像窗口2移动至主桌面左侧边缘,则通过网络发送模块向左侧的终端2发送(镜像命令+终端1的IP(源视频IP)+位置G”)信息。
终端2的网络接收模块接收到终端3的数据后,送到数据解析模块解析为(镜像命令+终端1的IP(源视频IP)+位置G”),送到控制决策模块。控制决策模块,判断终端1的IP非本机IP,则通过网络发送模块向终端1发送(视频请求命令+目标机IP(终端2的IP))信息。
终端1的网络接收模块接收到终端2的数据信息后,送到数据解析模块解析为(视频请求命令+目标机IP(终端2的IP)),送到控制决策模块。控制决策模块,判断目标机IP不是本机IP(终端1的IP),则通知网络发送模块向终端2发送视频数据。
终端2的网络接收模块,接收到终端1发送的数据后,送到数据解析模块解析为视频数据,送到视频解码器模块进行解压缩处理,然后送到窗口视频渲染模块在指定位置G’创建镜像窗口3显示。
用户在终端3将镜像窗口2由主桌面位置G”移动到左侧虚拟桌面位置H”的过程中,控制决策模块,不断通过网络发送模块,将(同步命令+窗口的位置)信息发送给终端2。
终端2收到(同步命令+窗口的位置)后,由控制决策模块,通知窗口同步模块,不断同步更新镜像窗口3的位置。
当终端3的控制决策模块,判断镜像窗口2已完全移动到左侧虚拟桌面内(位置H”)时,则通过网络发送模块向源视频IP(终端1)发送信息(请求停止视频+目标机IP(终端3)),并销毁左侧虚拟桌面位置H”的镜像窗口2。
终端1控制决策模块接收到数据解析模块送来的(请求停止视频+目标机IP(终端3))信息时,通知网络发送模块,停止向终端3发送视频数据。
终端2的控制决策模块,判断镜像窗口3已完全移动到主桌面内(位置H’)时,则向终端1(源视频IP)发送(鼠标事件请求命令+目标机IP(终端2的IP))信息。
终端1接收到终端2的(鼠标事件消息请求命令+终端2的IP(目标机IP))后,控制决策模块判断目标机IP(终端2的IP)不是本机IP,因此通知,网络发送模块,将鼠标事件消息检测的鼠标信息发送的目标IP由终端3改为终端2。
终端2网络接收模块,接收到终端1发送的数据,送到数据解析模块解析为鼠标事件消息,则送到鼠标事件响应模块处理。此时,用户通过终端1的鼠标操作命令在终端2响应。
用户此时通过鼠标继续移动的窗口为终端2的镜像窗口3,可将镜像窗口3移动至终端2主桌面位置I’处。
终端2的控制决策模块,判断镜像窗口3移动至主桌面左侧边缘,则通过网络发送模块向左侧的终端1发送(镜像命令+终端1的IP(源视频IP)+位置I’)信息。
终端1的网络接收模块接收到终端2的数据后,送到数据解析模块解析为(镜像命令+终端1的IP(源视频IP)+位置I’),送到控制决策模块。控制决策模块,判断源视频IP是本机IP,则将位置信息I’发送给窗口位置同步模块,将原生窗口1由位置C移动至位置I。
用户在终端2将镜像窗口3由主桌面位置I’移动到左侧虚拟桌面位置J’的过程中,控制决策模块,不断通过网络发送模块,将(同步命令+窗口的位置)信息发送给终端1。
终端1收到(同步命令+窗口的位置)后,由控制决策模块,通知窗口同步模块,不断同步更新原生窗口1的位置。
当终端2的控制决策模块,判断镜像窗口3已完全移动到左侧虚拟桌面内(位置J’)时,则通过网络发送模块向源视频IP(终端1)发送信息(请求停止视频+目标机IP(终端2)),并销毁左侧虚拟桌面位置J’的镜像窗口3。
终端1控制决策模块接收到数据解析模块送来的(请求停止视频+目标机IP(终端2))信息时,通知网络发送模块,停止向终端2发送视频数据。
终端1的控制决策模块,判断原生窗口1已完全移动到主桌面内(位置J)时,则通知鼠标事件消息检测模块开发系统响应鼠标事件,并停止向网络发送模块发送鼠标事件消息数据。
此时终端1的系统可以响应鼠标事件消息,用户通过鼠标将原生窗口由位置J移动至位置A。
到此,就介绍完成了窗口由终端1位置A到终端3位置F”,再回到终端1的位置A的移动过程。
从以上示例可以看出,虽然过程简单,但多台终端之间的信息交互比较繁琐。为了简单说明,才只采用了在3台终端间移动窗口来说明。但同样的方法可以在任意多台终端间完成窗口的移动过程。而且,也不必是要从最左边终端开始移动窗口,从任意一台终端,向任意方向移动窗口,使用本发明方案都是可行的。
需要说明的是,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或者暗示相对重要性。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,作为独立的产品销售或使用。所述程序在执行时,可执行如上述各方法的实施例的全部或部分步骤。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
或者,本发明上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
另外,在本发明各实施例中的各功能模块可以全部集成在一个处理模块中,也可以是各模块分别单独作为一个模块,也可以两个或两个以上模块集成在一个模块中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

  1. 一种桌面窗口共享方法,其特征在于,包括:
    将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
    在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
    根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口。
  2. 根据权利要求1所述的桌面窗口共享方法,其特征在于,还包括:
    将窗口源终端主桌面上的所述原生窗口向预先为窗口源终端配置的第二虚拟桌面移动,所述第二虚拟桌面对应第一终端的主桌面;
    在所述第一终端向窗口源终端获取所述窗口数据;
    根据所述窗口数据将移动至所述第二虚拟桌面中的原生窗口镜像到所述第一终端的主桌面,得到所述第一镜像窗口。
  3. 根据权利要求1所述的桌面窗口共享方法,其特征在于:
    所述第二终端为所述第一终端的左邻终端或者右临终端,在所述第二终端为所述第一终端的左邻终端时,所述为所述第一终端配置的第一虚拟桌面为左侧虚拟桌面,在所述第二终端为所述第一终端的右邻终端时,所述为所述第一终端配置的第一虚拟桌面为右侧虚拟桌面。
  4. 根据权利要求1所述的桌面窗口共享方法,其特征在于,还包括:
    在将所述第一镜像窗口向所述第一虚拟桌面移动的过程中,根据所述第一镜像窗口在所述第一虚拟桌面中的位置信息同步移动所述第二终端的主桌面上的第二镜像窗口。
  5. 根据权利要求1所述的桌面窗口共享方法,其特征在于,还包括:
    在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面后,将所述窗口源终端的鼠标事件信息的发送目标由所述第一终端更改为所述第二终端;
    在将所述第一镜像窗口完整的镜像到所述第二终端的主桌面时,停止向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据。
  6. 一种桌面窗口共享系统,其特征在于,至少包括第一终端和第二终端,所述第一终端包括第一移动单元,所述第二终端包括第一获取单元和第一镜像单元:
    所述第一移动单元用于将第一终端主桌面上的第一镜像窗口向预先为第一终端配置的第一虚拟桌面移动,所述第一虚拟桌面对应第二终端的主桌面;
    所述第一获取单元用于在所述第二终端向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据;
    所述第一镜像单元用于根据所述窗口数据将移动至所述第一虚拟桌面中的第一镜像窗口镜像到所述第二终端的主桌面,得到第二镜像窗口。
  7. 根据权利要求6所述的桌面窗口共享系统,其特征在于,还包括窗口源终端,所述窗口源终端包括第二移动单元,所述第一终端还包括第二获取单元和第二镜像单元:
    所述第二移动单元用于将窗口源终端主桌面上的所述原生窗口向预先为窗口源终端配置的第二虚拟桌面移动,所述第二虚拟桌面对应第一终端的主桌面;
    所述第二获取单元用于在所述第一终端向窗口源终端获取所述窗口数据;
    所述第二镜像单元用于根据所述窗口数据将移动至所述第二虚拟桌面中的原生窗口镜像到所述第一终端的主桌面,得到所述第一镜像窗口。
  8. 根据权利要求6所述的桌面窗口共享系统,其特征在于,所述第二终端还包括同步单元;
    所述同步单元用于在将所述第一镜像窗口向所述第一虚拟桌面移动的过程中,根据所述第一镜像窗口在所述第一虚拟桌面中的位置信息同步移动所述第二终端的主桌面上的第二镜像窗口。
  9. 根据权利要求7所述的桌面窗口共享系统,其特征在于:
    所述窗口源终端还包括鼠标目标更改单元,鼠标目标更改单元用于在所述第一镜像单元将完整的第一镜像窗口镜像到所述第二终端的主桌面后,将所述窗口源终端的鼠标事件信息的发送目标由所述第一终端更改为所述第二终端;
    所述获取单元用于在所述移动单元将所述第一镜像窗口完全移动至所述第一虚拟桌面中时,停止向窗口源终端获取第一镜像窗口对应的原生窗口的窗口数据。
  10. 一种桌面窗口共享系统,其特征在于,包括第三移动单元、第三获取单元和第三镜像单元;
    所述第三移动单元用于将当前终端主桌面上的镜像窗口或者原生窗口向预先为当前终端配置的虚拟桌面移动,所述虚拟桌面对应目标终端的主桌面;
    所述第三获取单元用于在有镜像窗口或者原生窗口向对应所述当前终端主桌面的虚拟桌面移动时,向窗口源终端获取对应的原生窗口的窗口数据;
    所述第三镜像单元用于根据所述窗口数据将移动至对应所述当前终端主桌面的虚拟桌面中的镜像窗口或者原生窗口镜像到所述当前终端主桌面。
PCT/CN2017/095808 2016-08-03 2017-08-03 桌面窗口共享方法和系统 WO2018024230A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610635412.1A CN106293583B (zh) 2016-08-03 2016-08-03 桌面窗口共享方法和系统
CN201610635412.1 2016-08-03

Publications (1)

Publication Number Publication Date
WO2018024230A1 true WO2018024230A1 (zh) 2018-02-08

Family

ID=57665374

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/095808 WO2018024230A1 (zh) 2016-08-03 2017-08-03 桌面窗口共享方法和系统

Country Status (2)

Country Link
CN (1) CN106293583B (zh)
WO (1) WO2018024230A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293583B (zh) * 2016-08-03 2019-10-11 广东威创视讯科技股份有限公司 桌面窗口共享方法和系统
CN110515580B (zh) * 2019-09-02 2022-08-19 联想(北京)有限公司 一种显示控制方法、装置及终端
CN114442969B (zh) * 2020-10-30 2024-06-18 华为技术有限公司 一种设备间屏幕协同方法及设备
CN114398112B (zh) * 2021-12-01 2024-05-14 瑞芯微电子股份有限公司 控制屏幕切换的方法、系统和计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136828A1 (en) * 2004-12-16 2006-06-22 Taiga Asano System and method for sharing display screen between information processing apparatuses
CN101447998A (zh) * 2008-12-25 2009-06-03 广东威创视讯科技股份有限公司 桌面共享方法及系统
CN105407169A (zh) * 2015-12-08 2016-03-16 广东威创视讯科技股份有限公司 桌面共享方法和系统
CN106293583A (zh) * 2016-08-03 2017-01-04 广东威创视讯科技股份有限公司 桌面窗口共享方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150326642A1 (en) * 2013-03-06 2015-11-12 Junwei Cao Content-based desktop sharing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136828A1 (en) * 2004-12-16 2006-06-22 Taiga Asano System and method for sharing display screen between information processing apparatuses
CN101447998A (zh) * 2008-12-25 2009-06-03 广东威创视讯科技股份有限公司 桌面共享方法及系统
CN105407169A (zh) * 2015-12-08 2016-03-16 广东威创视讯科技股份有限公司 桌面共享方法和系统
CN106293583A (zh) * 2016-08-03 2017-01-04 广东威创视讯科技股份有限公司 桌面窗口共享方法和系统

Also Published As

Publication number Publication date
CN106293583A (zh) 2017-01-04
CN106293583B (zh) 2019-10-11

Similar Documents

Publication Publication Date Title
WO2018024230A1 (zh) 桌面窗口共享方法和系统
JP6460228B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
US11243737B2 (en) Method and system for remote collaboration
JP6303446B2 (ja) 情報処理装置、プログラム、情報処理システム、及び情報処理方法
US9678567B2 (en) Indication of eye tracking information during real-time communications
EP2789120B1 (en) Collaboration system and method
WO2022028119A1 (zh) 一种屏幕共享方法、装置、设备及存储介质
JP2016511603A (ja) マルチユーザ制御及び共有ディスプレイに対するメディアストリーミングのためのシステム及び方法
US20180113663A1 (en) Browser based display system for displaying image data
US10581950B2 (en) Local operation of remotely executed applications
JP2017538178A (ja) デバイス間でのアプリケーションの分割提示
WO2015144024A1 (zh) 多屏互动方法及装置
EP3076647B1 (en) Techniques for sharing real-time content between multiple endpoints
US10897435B2 (en) Instant messaging method and system, and electronic apparatus
US20190036979A1 (en) Confidentiality-Based File Hosting
US20170229102A1 (en) Techniques for descriptor overlay superimposed on an asset
WO2018233122A1 (zh) 无线传屏的展示方法、装置及存储介质
JP2023513453A (ja) 同期ローカルルームとリモート共有
CN102902451A (zh) 信息处理设备、程序和协调处理方法
US10191709B2 (en) Display apparatus configured to determine a processing mode to transfer image contents to another display apparatus
JP2019022181A (ja) 会議システム、共有表示装置に対する表示方法および切換装置
JP2024526161A (ja) 情報返信方法、装置、電子機器、コンピュータ記憶媒体と製品
CN114374853B (zh) 内容展示方法、装置、计算机设备和存储介质
CN107291834B (zh) 一种基于可读码的信息输入方法、设备和终端
US10114904B2 (en) Method, system, electronic device and server for synchronous display of operating information

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17836412

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 22/05/2019)

122 Ep: pct application non-entry in european phase

Ref document number: 17836412

Country of ref document: EP

Kind code of ref document: A1