Method, apparatus and device for resolving instruction conflict

By obtaining the desktop system corresponding to the focused window of the terminal device's display interface, the command responder is determined, which solves the problem of conflict between local and virtual desktop commands on the terminal device, realizes flexible and accurate command response, and improves user experience.

CN117311807BActive Publication Date: 2026-04-07HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-06-24
Publication Date
2026-04-07

AI Technical Summary

Technical Problem

When running both local and virtual desktops simultaneously on a terminal device, the inability to flexibly determine the responder of commands can lead to command conflicts. Existing solutions are not flexible enough or increase the learning cost for users.

Method used

By obtaining the desktop system corresponding to the focused window of the terminal device's display interface and determining the final responder based on its ability to respond to commands, the system can utilize either the local or remote desktop system to respond to commands, thus avoiding the configuration of two completely different sets of commands.

Benefits of technology

It enables flexible and accurate identification and response to commands without increasing the user's learning cost, solves the command conflict problem, and improves the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117311807B_ABST
    Figure CN117311807B_ABST
Patent Text Reader

Abstract

A method, apparatus, and device for resolving command conflicts are disclosed to flexibly determine the responder of conflicting commands in the event of a conflict. The method includes: acquiring a first command, which is a command configured in both the local desktop system and the remote desktop system; acquiring a first desktop system corresponding to the focused window in the display interface of the local terminal, where the first desktop system is the desktop system providing the display content of the focused window; if the first desktop system cannot respond to the first command, then utilizing a second desktop system to respond to the first command, where the second desktop system is a desktop system other than the first desktop system in both the local and remote desktop systems.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of Internet technology, and in particular to a solution, apparatus and device for instruction conflict. Background Technology

[0002] With the rapid development of the Internet, virtual desktops such as cloud desktops and remote desktops are increasingly being used in office and teaching scenarios.

[0003] When a terminal device has both a local desktop and a virtual desktop running simultaneously, if both the local desktop and the virtual desktop are configured to respond to a command, the terminal device cannot determine whether the local desktop or the virtual desktop should respond to the command.

[0004] To avoid command conflicts, a default responder is typically set. Specifically, if the default responder is set to the local desktop, the local desktop will respond to the command; if the default responder is set to a virtual desktop, the virtual desktop will respond. However, there are situations where the user wants the virtual desktop to respond, but because the default responder is the local desktop, the local desktop ultimately responds; or vice versa. This lack of flexibility makes the situation less flexible. Summary of the Invention

[0005] This application provides a solution, apparatus, and device for resolving instruction conflicts, enabling flexible determination of the responder in the event of an instruction conflict.

[0006] The first aspect provides a solution to command conflict issues. This method can be applied to a local terminal. The local terminal runs a local desktop system and a remote desktop client, and the remote desktop system where the cloud desktop client resides also includes a remote desktop server. The method includes: obtaining a first command, which is a command configured in both the local desktop system and the remote desktop system, i.e., the first command is a conflicting command; obtaining the first desktop system corresponding to the focused window in the local terminal's display interface, where the first desktop system is the desktop system providing the display content of the focused window; if the first desktop system cannot respond to the first command, then using a second desktop system to respond to the first command, where the second desktop system is a desktop system other than the first desktop system in the local desktop system and the remote desktop system. By obtaining the first desktop system when the obtained first command is a conflicting command, and the first desktop system being the desktop system corresponding to the focused window in the display interface, it indicates that the first desktop system is the currently used desktop system. Further, the final responder of the first command is determined based on whether the first desktop system can respond to the first command. If the first desktop system cannot respond to the first command, the second desktop system is used to respond to the first command, thereby accurately and flexibly obtaining the responder of the first command.

[0007] In one possible implementation, the method further includes: if the first desktop system is capable of responding to the first instruction, then utilizing the first desktop system to respond to the first instruction. The first desktop system is the currently used desktop system, and since the first desktop system is capable of responding to the first instruction, it can be considered the responder expected by the user, thereby accurately and flexibly obtaining the responder of the first instruction.

[0008] In one possible implementation, when the first desktop system is a local desktop system, responding to the first command using the second desktop system includes sending the first command to a remote desktop server so that the remote desktop server responds to the first command. If the first desktop system is a local desktop system, and the second desktop system is a remote desktop system, then the first command needs to be sent to a remote server within the remote desktop system, and the remote server responds to the first command.

[0009] In one possible implementation, when the first desktop system is a remote desktop system, the second desktop system responds to the first instruction, including: the local desktop system responding to the first instruction.

[0010] In one possible implementation, the first desktop system's inability to respond to the first instruction includes: the first desktop system being in a state of responding to the second instruction, where the second instruction has the same effect on the desktop system as the first instruction. When the first desktop system is already in a state where the first instruction is about to be executed, there is no need for the first desktop system to execute the first instruction again. In this case, the first desktop system can be considered not to be the responder expected by the user, and the second desktop system can respond to the first instruction.

[0011] In one possible implementation, the first desktop system's inability to respond to the first instruction includes: the first desktop system being in a locked state, and the first instruction not being an instruction to unlock the system. When the first desktop system is locked, all instructions other than those for unlocking the system cannot be executed. Therefore, the first desktop system can be considered not to be the responder expected by the user, and the second desktop system can respond to the first instruction.

[0012] In one possible implementation, the first desktop system's inability to respond to the first instruction includes: the first desktop system lacks an object to execute the first instruction. Since no object exists, the first instruction cannot be executed, and therefore the first desktop system is considered not the responder the user expects; the second desktop system can then respond to the first instruction.

[0013] In one possible implementation, the focus window is the largest window in the current display interface, or the window located in the center of the current display interface, or the window where the mouse cursor is located, or the currently active window of the first desktop system. The focus window is the window that the user is currently using or is currently paying the most attention to. The focus window in the current display interface can be accurately determined by the window's size, position, the window where the cursor is located, or the window's activation state.

[0014] In one possible implementation, the first instruction includes one or more of the following: screen lock instruction, minimize instruction, maximize instruction, open window instruction, close window instruction, select all instruction, and delete instruction.

[0015] A second aspect provides an apparatus for resolving command conflicts. The apparatus includes an acquisition module and a first response module. The acquisition module is used to acquire a first command, which is a command configured in both the local desktop system and the remote desktop system. The acquisition module is also used to acquire a first desktop system corresponding to the focused window in the display interface of the local terminal, where the first desktop system is the desktop system providing the display content of the focused window. The first response module is used to respond to the first command using a second desktop system when the first desktop system cannot respond to the first command, where the second desktop system is a desktop system other than the first desktop system in the local desktop system and remote desktop system.

[0016] In one possible implementation, the device further includes a second response module. The second response module is configured to respond to the first instruction using the first desktop system when the first desktop system is capable of responding to the first instruction.

[0017] In one possible implementation, the first response module is specifically used to: send a first instruction to the remote desktop server so that the remote desktop server responds to the first instruction.

[0018] In one possible implementation, the first desktop system's inability to respond to the first instruction includes: the first desktop system being in a state of responding to the second instruction, where the effect of the second instruction on the desktop system is the same as the effect of the first instruction on the desktop system.

[0019] In one possible implementation, the first instruction not responding includes: the first desktop system being in a locked state, and the first instruction not being an instruction to unlock the system.

[0020] In one possible implementation, the first desktop system's inability to respond to the first instruction includes: the first desktop system does not have an object to which the first instruction is to be executed.

[0021] In one possible implementation, the focus window is the largest window in the current display interface, or the window located in the center of the current display interface, or the window where the mouse cursor is located, or the window currently active in the first desktop system.

[0022] In one possible implementation, the first instruction includes one or more of the following: screen lock instruction, minimize instruction, maximize instruction, open window instruction, close window instruction, select all instruction, and delete instruction.

[0023] A third aspect provides an apparatus. The apparatus includes a processor and a memory, the processor being coupled to the memory, the processor being configured to, based on instructions stored in the memory, cause the apparatus to implement the methods of the first aspect or any possible implementation thereof.

[0024] A fourth aspect provides a computer-readable storage medium including instructions that, when executed by a processor, cause a device to implement the method of the first aspect or any possible implementation thereof.

[0025] The fifth aspect provides a computer program product comprising a program that, when run on a processor, implements the methods of the first aspect or any possible implementation thereof. Attached Figure Description

[0026] Figure 1 A schematic diagram of the structure of an embodiment of the instruction conflict resolution system provided in this application;

[0027] Figure 2 A flowchart illustrating the first embodiment of the instruction conflict resolution method provided in this application;

[0028] Figure 3 A schematic diagram of a focus window in the display interface provided in this application;

[0029] Figure 4 A schematic diagram of another focused window in the display interface provided in this application;

[0030] Figure 5 A flowchart illustrating the second embodiment of the instruction conflict resolution method provided in this application;

[0031] Figure 6 A schematic diagram of the structure of an embodiment of the instruction conflict resolution apparatus provided in this application;

[0032] Figure 7 A schematic diagram of an embodiment of the instruction conflict resolution device provided in this application. Detailed Implementation

[0033] This application provides a solution, apparatus, and device for resolving instruction conflicts, enabling flexible determination of the responder to conflicting instructions in the event of an instruction conflict.

[0034] A remote desktop system typically consists of a remote desktop client and a remote desktop server. The remote desktop client is installed on the local terminal, while the remote desktop server runs on a remote device. When the local terminal runs the remote desktop client and logs into the remote desktop server, the desktop data provided by the remote desktop server is transmitted to the local terminal via the network and displayed on the local terminal's screen through the remote desktop client. The local terminal can control the remote desktop system through the remote desktop client. The remote device can be a cloud server or a terminal controlled by the local terminal. Remote desktop systems can be, for example, cloud desktop systems or remote terminal desktop systems.

[0035] In this context, a cloud desktop system refers to a virtual desktop system hosted on a cloud server. The remote desktop client of a cloud desktop system is called a cloud desktop client, and the remote desktop server is called a cloud desktop. A local terminal accesses the cloud desktop on the cloud server through the cloud desktop client running on the local terminal. The cloud server transmits the desktop data provided by the cloud desktop to the local terminal via a desktop protocol. The local terminal then displays the corresponding interface of the cloud desktop data on its cloud desktop client screen. When the local terminal accesses the cloud desktop, it transmits the received commands to the cloud desktop on the cloud server in real time via a desktop protocol. The cloud desktop processes the commands and sends the resulting desktop data back to the local terminal. This allows the user to use the cloud desktop on their local terminal as if it were a local desktop, thus enabling control of the cloud desktop through the local terminal.

[0036] Remote desktop systems are typically used in remote or collaborative work scenarios. A remote desktop system is the desktop system of a terminal controlled by a local terminal. In this scenario, the local terminal and the controlled terminal are connected via a network, and the display interface of the controlled terminal is transmitted to the local terminal for display. For example, using home computer A to access and control computer B located in the office, displaying computer B's interface on computer A. The method of controlling a remote desktop from a local terminal is similar to that of a cloud desktop, so it will not be elaborated further here.

[0037] A local desktop system is a desktop system that runs on a local terminal based on its own computing resources, storage resources, and operating system.

[0038] When a remote desktop client runs on a local terminal and logs into a remote desktop server through the client, the local terminal is actually running two desktop systems: the local desktop system and the desktop system corresponding to the remote desktop server within the remote desktop system. When the local terminal receives a command, it may have difficulty determining whether the response should come from the local desktop system or the remote desktop system, leading to a command conflict.

[0039] In solutions to avoid command conflicts, default responders are typically set in both the local and remote desktop systems. However, this can lead to situations where commands are not responded to by the user's expected desktop system, resulting in a lack of flexibility. Alternatively, non-conflicting commands can be configured for both the local and remote desktop systems, but this can result in too many commands, a high learning curve for users, and confusion between commands from different desktop systems.

[0040] Therefore, this application provides the following embodiments to flexibly and accurately identify the responder of an instruction in the event of an instruction conflict without increasing the user's learning cost.

[0041] like Figure 1 As shown, Figure 1 This is a schematic diagram illustrating the structure of an embodiment of the instruction conflict resolution system provided in this application. In this embodiment, the system includes a local terminal and a remote device. The local terminal can be a thin client with only a display, keyboard, mouse, and network devices, or a terminal device with communication and display functions, such as a desktop computer, laptop computer, tablet computer, or smartphone. The remote device can be a cloud server, or a terminal device such as a desktop computer, laptop computer, tablet computer, or smartphone.

[0042] The local terminal and the remote device are connected via a network, enabling the local terminal to send instructions to the remote device and the remote device to send remote desktop data to the local terminal. In this embodiment, the remote desktop system can be a cloud desktop system or a remote terminal desktop system, etc.

[0043] The instructions received by the local terminal can be input by the user through input devices such as a mouse, keyboard, microphone, touchscreen, motion sensor, or camera. Examples include various keyboard shortcuts such as Ctrl+C, Ctrl+V, F5, Ctrl+N, or Win+L; mouse commands such as click, scroll up, scroll down, forward, or back; voice commands such as "lock screen," "open task manager," "new file," or "open file"; gesture commands such as double-tap, single-tap, swipe up, or swipe down; user body gestures or eye gaze commands via camera; and user body gestures via motion sensor. The local terminal or input device can be configured with instruction recognition modules for shortcuts, mouse commands, voice commands, gesture commands, user body gestures, or eye gaze commands. These modules can then recognize and convert the corresponding operation signals collected by the mouse, keyboard, microphone, touchscreen, or camera into instructions that can be understood and executed by the computer.

[0044] In this embodiment, the local desktop system is configured with a first set of instructions, and the remote desktop server in the remote desktop system is configured with a second set of instructions. In some implementations, the instructions in the first set of instructions of the local desktop system can all be default instructions of the operating system. In other implementations, the first set of instructions may include some user-defined instructions in addition to the default instructions of the operating system.

[0045] If the remote device is a cloud server and the remote desktop system is a cloud desktop system, there are several ways to configure a second set of commands for the cloud desktop server. For example, you can obtain the first set of commands from the local desktop system and configure it as the commands for the cloud desktop server. That is, the first and second sets of commands can be the same. Another example is to obtain common commands from the internet and configure them as the second set of commands for the cloud desktop server. Yet another example is that the second set of commands for the cloud desktop server can also use the operating system's default commands. Of course, the second set of commands can also include some user-defined commands.

[0046] If the remote device is a terminal device, the remote desktop server on the terminal device is generally configured with its own second set of commands. Similar to the first set of commands on the local terminal, the second set of commands on the remote desktop server can consist entirely of the operating system's default commands, or it may also include some user-defined commands.

[0047] Optionally, the first and second sets of instructions may further include at least one subset, each subset corresponding to an instruction specific to a type of input device. For example, if a local desktop system is configured with keyboard shortcuts and voice commands, and the first set of instructions includes two subsets, one subset is used to store keyboard shortcuts, and the other subset is used to store voice commands. The same applies to remote desktop servers.

[0048] Therefore, in this embodiment, at least some of the instructions in the first set of instructions and the second set of instructions are the same, eliminating the need to design a separate set of instructions that makes the first set of instructions completely different from the second set. The same instructions can be used in both the local desktop system and the remote desktop system, eliminating the need for users to learn complex instructions to avoid conflicts.

[0049] In this embodiment, when the local desktop system and the remote desktop system are configured with the same instructions, the system determines whether the instruction should be responded to by the local desktop system or the remote desktop system based on whether the operating system corresponding to the focused window in the local terminal's display interface can respond to the instruction when the local terminal receives the instruction.

[0050] like Figure 2 As shown, Figure 2 This is a flowchart illustrating a first embodiment of the instruction conflict resolution method provided in this application. This embodiment can be implemented by a local terminal. Specifically, this embodiment can be executed by a remote desktop client running on the local terminal. Of course, this embodiment can also be executed by other modules running on the local terminal for resolving instruction conflicts; this application does not limit this. It should be noted that the local terminal is not in a locked, hibernating, or sleep state when executing the solution of this embodiment. Instructions received by the local terminal in a locked, hibernating, or sleep state are directly responded to by the local terminal. This embodiment includes the following steps:

[0051] S201: Obtain a first instruction, which is an instruction configured in both the local desktop system and the remote desktop system.

[0052] The first instruction is input via an input device such as a mouse, keyboard, microphone, touchscreen, motion sensor, or camera on the local terminal. For example, the first instruction may include one or more of the following: lock screen instruction, minimize instruction, maximize instruction, open window instruction, close window instruction, select all instruction, and delete instruction. It is understood that the first instruction can be any instruction input via an input device for controlling the local desktop system or remote desktop system; not all examples are provided here. The specific forms of the aforementioned lock screen instruction, minimize instruction, and maximize instruction may vary depending on the input device. For example, when the lock screen instruction is input via keyboard, it may be the shortcut key Win+L; when the lock screen instruction is input via microphone, it may be the voice command "lock screen," etc.

[0053] When the local terminal receives the first instruction input by the user, it can first determine whether the first instruction is a conflicting instruction, that is, whether both the local file system and the remote desktop system are configured with the instruction. Specifically, the second set of instructions from the remote desktop system may be stored on the local terminal. If the first instruction exists in both the first and second sets of instructions, it can be determined that the first instruction is a conflicting instruction; if the first instruction exists only in either the first or second set of instructions, it can be confirmed that the first instruction is not a conflicting instruction, and it can be determined which desktop system is configured with the first instruction. If the first instruction is not a conflicting instruction, that is, only one of the local file system and the remote desktop system is configured with the instruction, then it can be determined that the desktop system configured with the instruction will execute the instruction. If the instruction is a conflicting instruction, then S202 is executed to further determine whether the instruction should be executed by the local file system or the remote desktop system.

[0054] S202: Obtain the first desktop system corresponding to the focus window in the display interface of the local terminal. The first desktop system is the desktop system that provides the display content of the focus window.

[0055] The first desktop system is one of the two desktop systems: the remote desktop system and the local desktop system.

[0056] In this embodiment, the instruction executor in the local file system and the remote desktop system is determined based on the focus window in the local terminal display interface.

[0057] The focus window is generally the window the user is currently focusing on and using. Based on the focus window, it's possible to more accurately determine which desktop system will execute the user's desired command. Specifically, the focus window can be the largest window in the currently displayed interface. It can also be the window located in the center of the currently displayed interface. The focus window can also be the window where the mouse cursor is located. Alternatively, the focus window can be the currently active window of the primary desktop system, i.e., the foreground window. The foreground window is the window in the foreground of the desktop system and is the window currently in use. Only one window can be active at a time on the primary desktop system, thus uniquely identifying the focus window.

[0058] The display interface refers to the interface that the local terminal currently presents to the user (when receiving instructions or within a preset time period after receiving instructions). The focus window being located in the center of the display interface can mean that the focus window is located within the first preset area of ​​the display interface, such as... Figure 3 As shown. Alternatively, the focus window can be located in the center of the display interface, meaning the center of the focus window (the intersection of the diagonals of the focus window) is located within the second preset area of ​​the display interface, such as... Figure 4 As shown. If there is more than one window in the center of the display interface, you can further determine the window's size by comparing the window's area or the window where the mouse cursor is located.

[0059] Since the remote desktop client is specifically used to display desktop data provided by the remote desktop server in the remote desktop system, the first desktop system can be determined by judging whether the focused window is the window corresponding to the remote desktop client: if the focused window is the window corresponding to the remote desktop client, then the first desktop system is the remote desktop system; if the focused window is not the window corresponding to the remote desktop client, then the first desktop system is the local desktop system.

[0060] In this embodiment, the responder of the first instruction is further determined based on whether the first desktop system can respond to the first instruction. If the first desktop system can respond to the first instruction, it is determined that the first desktop system responds to the first instruction, and S203 is executed; if the first desktop system cannot respond to the first instruction, it is determined that the second desktop system responds to the first instruction, and S204 is executed. The second desktop system is a desktop system other than the first desktop system in the local desktop system and remote desktop system. Specifically, if the first desktop system is a remote desktop system and the second desktop system is a local desktop system, after determining that the remote desktop system cannot respond to the target execution, the local desktop system responds to the first instruction; or after determining that the remote desktop system can respond to the target execution, the remote desktop system responds to the first instruction. Similarly, if the first desktop system is a local desktop system and the second desktop system is a remote desktop system, after determining that the local desktop system cannot respond to the first instruction, the remote desktop system responds to the first instruction; or after determining that the local desktop system can respond to the first instruction, the local desktop system responds to the first instruction.

[0061] There are several reasons why the first desktop system may fail to respond to the first command. For example, the first desktop system may not have an object to execute the first command, or the first command may not be able to change the desktop state of the first desktop system. Desktop state refers to the state of the displayed interface. The desktop system stores the display attributes of active windows and icons on the currently displayed interface, as well as whether the entire desktop system is active or locked, such as window size, position, visibility, whether it is maximized / minimized, and icon size and position. Changing the desktop state includes at least one of the following: a. changes in the number, size, or position of windows and icons in the displayed interface; b. switching the displayed interface; c. the desktop system changing from a locked state to an unlocked state, or from an unlocked state to a locked state. A locked desktop system means that the desktop system is in a locked / hibernating / sleep state. The first command failing to change the desktop state of the first desktop system includes situations such as the first desktop system responding to a second command, or the first desktop system being locked and the first command not being a command to unlock the system.

[0062] The following describes several possible scenarios where the first desktop system fails to respond to the first command:

[0063] 1. The first desktop system is in a state of responding to the second command.

[0064] The second instruction has the same effect on the desktop system as the first instruction. In other words, the first desktop system is already in a state where the first instruction is about to be executed. The second instruction and the first instruction can be the same instruction. Of course, the second instruction and the first instruction can also be different instructions. For example, the second instruction and the first instruction can be input through different input / output devices but achieve the same effect. For example, the second instruction is the keyboard shortcut Ctrl+C, and the first instruction is the voice command "copy" input through the microphone; both can achieve the copying effect. Or, the second instruction and the first instruction can be input through the same input device but achieve the same effect. For example, the second instruction is the keyboard shortcut Ctrl+Z, and the first instruction is the shortcut combination Alt+Backspace; both can achieve the undo effect.

[0065] Among the commands in a desktop system, some commands change the desktop state and maintain that state. That is, if the desktop state is already the state that the command will achieve, even if the command is issued again, it will not receive a second response, or the desktop state will not change even if the command is executed again. In this embodiment, these commands are referred to as state commands. State commands include, for example, lock screen / hibernate / sleep commands, open the Run dialog box commands, open Task Manager commands, minimize all windows commands, jump to the beginning or end of a page / line commands, etc. Specifically, the lock screen command can lock the desktop and maintain the locked state until the screen is unlocked; the open Task Manager command can pop up a Task Manager window on the desktop and maintain its open state until the Task Manager window is closed, and so on.

[0066] If the local terminal determines that the first instruction is a status instruction, it can obtain the current desktop status of the first desktop system. Obtaining the desktop status specifically includes, for example, obtaining the currently active window process and its attributes, as well as the system status of the first desktop system (active / locked / hibernating / sleep). Based on the effect achievable by the first instruction and the current desktop status, it can be determined whether the desktop status is already in the state that the first instruction will achieve. For example, if the first instruction is used to open the Task Manager (at this time, the first instruction obtained by S201 has not yet been executed), and if a Task Manager window process already exists in the first desktop system, then it is determined that the desktop status of the first desktop system is already in the state that the first instruction will achieve. As another example, if the first instruction is used to maximize / minimize the current window (i.e., the foreground window), and if the attributes of the current window determine that the current window is already in a maximized / minimized state, then it is determined that the desktop status of the first desktop system is already in the state that the first instruction will achieve.

[0067] In some other implementations, the current desktop state of the first desktop system can also be obtained through the historical command execution records of the first desktop system. Specifically, if the first desktop system has executed the second command but has not executed the command to cancel the desktop state corresponding to the second command, it can be considered to be in a state of responding to the second command. For example, if the second command is to open the Task Manager, the corresponding cancellation command is to close the Task Manager.

[0068] The current desktop state of the first desktop system is already the state after executing the second command, indicating that even if the first command were executed, it would not change the desktop state. Therefore, it can be determined that the first desktop system cannot execute the first command. For example, if the first desktop system is a remote desktop system, and the remote desktop system is already in a locked / hibernating / sleep state, even if the command for locking / hibernating / sleep is executed again, it will ultimately remain in a locked / hibernating / sleep state. If the first desktop system already has an open Task Manager window, executing the command for opening the Task Manager will not add a new Task Manager window. If all windows of the first desktop system are minimized, even if the command for minimizing all windows is executed again, all windows will remain minimized.

[0069] 2. The first desktop system is in a locked state, and the first instruction is not an instruction to unlock the system.

[0070] Being locked can mean the primary desktop system is in a locked / hibernating / sleep state. It can also mean a window on the desktop is frozen due to a pop-up window. For example, if an office document window displays pop-ups for saving, printing, logging in, or saving, the office document window will be frozen. If commands are used to minimize / close / maximize the office document window, the window will not be minimized / closed / maximized according to the commands and will remain in its original state.

[0071] Instructions generally have an object to be executed, that is, the target of the instruction. If the object to be executed is locked, and the first instruction is not an instruction to unlock that state, then the first instruction cannot change the desktop state, and the first desktop system cannot respond to the first instruction. For example, if the first desktop system is in a locked / hibernating / sleep state, the entire first desktop system is locked. Except for instructions used to unlock / hibernate / sleep the first desktop system, the objects to be executed for other instructions are all locked, the instructions cannot be executed, and the desktop state will not change. The object to be executed for instructions used to minimize / close / maximize windows is the currently active window of the first desktop system. If an active window is locked due to pop-ups or other reasons, then the instruction cannot change the desktop state.

[0072] 3. The first desktop system does not have an object to be executed for the first instruction.

[0073] If the first desktop system does not have an object to execute the first instruction, the first instruction cannot be executed, and therefore the first desktop system cannot respond to the first instruction. For example, the object to execute the instruction to minimize all windows is all windows; the object to execute the instruction to close the current window is the current foreground window; the object to execute the instruction to exit the current application is the currently running application; the object to execute the instruction to save the current file is the currently open file, and so on. If the first desktop system does not have any open windows, i.e., there is no object to execute, the first desktop system cannot respond to instructions such as minimize all windows, close the current window, and close the current application. If the first desktop system does not have any open files, the first desktop system cannot respond to the instruction to save the current file.

[0074] When the first desktop system or the first instruction satisfies at least one of the above three conditions, it can be considered that the first desktop system is unable to respond to the first instruction.

[0075] There are several scenarios in which the first desktop system can respond to the first command. For example, the first desktop system's desktop state is locked, and the first command is an unlock command. Another example is that the first desktop system's desktop state is not locked, and the desktop state is not the state after executing the first command, and / or the first desktop system has an object to which the first command is executed, and the object to be executed is not locked. Yet another example is that the first desktop system's desktop state is not locked, and the first command is a non-state command. Non-state commands are commands configured for the first desktop system other than state commands. Non-state commands do not change the size, number, or position of windows, etc. Examples of non-state commands include copy commands, paste commands, refresh commands, and undo commands.

[0076] In some embodiments, the first desktop system may be in an unlocked state, which means that the first desktop system can respond to the first command.

[0077] When the primary desktop system is a remote desktop system, there are several ways for the local terminal to obtain the desktop status of the remote desktop server. The local terminal can obtain the desktop status based on the display interface sent by the remote desktop server to the remote desktop client. For example, a lock screen or a black screen indicates that the remote desktop server is in a locked state (such as lock screen, hibernation, or sleep). Alternatively, the local terminal can also obtain the desktop status of the remote desktop server by accessing the remote device's remote desktop server. When the primary desktop system is a local desktop system, the local terminal can obtain the desktop status through the local desktop system.

[0078] S203: If the first desktop system is able to respond to the first instruction, then the first desktop system is used to respond to the first instruction.

[0079] If the first desktop system is a local desktop system, then the local desktop system responds to the first instruction.

[0080] If the first desktop system is a remote desktop system, then the remote desktop system is used to respond to the first command. Specifically, the local terminal sends the first command to the remote desktop server through the remote desktop client, so that the remote desktop server executes the first command.

[0081] S204: If the first desktop system cannot respond to the first command, then the second desktop system is used to respond to the first command. The second desktop system is a desktop system other than the first desktop system in the local desktop system and remote desktop system.

[0082] If the first desktop system is a local desktop system and the second desktop system is a remote desktop system, then the remote desktop system is used to respond to the first command. Specifically, the local terminal sends the first command to the remote desktop server through the remote desktop client, so that the remote desktop server executes the first command.

[0083] If the first desktop system is a remote desktop system and the second desktop system is a local desktop system, then the local desktop system responds to the first command.

[0084] To make this solution easier to understand, we will use a screen lock command as an example. In this embodiment, the local desktop system is not in a screen lock state. Figure 5 As shown, Figure 5 A flowchart illustrating the second embodiment of the instruction conflict resolution method provided in this application.

[0085] S501: Obtain lock screen command.

[0086] S502: Determine whether the desktop system corresponding to the focused window in the local terminal's display interface is a remote desktop system.

[0087] Specifically, it can be determined whether the currently focused window is a remote desktop client window. If the focused window is a remote desktop client window, then the desktop system corresponding to the currently focused window can be confirmed as a remote desktop system; if the focused window is not a remote desktop client window, then the desktop system corresponding to the currently focused window can be confirmed as a local desktop system.

[0088] If the desktop system corresponding to the currently focused window is a local desktop system, execute S504; if the desktop system corresponding to the currently focused window is a remote desktop system, execute S504.

[0089] Since the local desktop system is not in a locked state, the lock screen command can be responded to by the local desktop system, and the ability of the local desktop system to respond to lock screen commands can be utilized.

[0090] S503: Determines whether the remote desktop system can respond to the screen lock command.

[0091] Specifically, the desktop status of the remote desktop server in the remote desktop system is obtained from the remote device, or the desktop status of the remote desktop server is obtained from the interface displayed in the remote desktop client. If the desktop status of the remote desktop system is already locked, it means that the remote desktop system can no longer respond to the lock screen command, so S504 is executed; if the desktop status of the remote desktop system is not locked, it means that the virtual desktop can respond to the lock screen command, so S505 is executed.

[0092] S504: Executes screen lock commands using the local desktop system.

[0093] S505: Execute screen lock commands using a remote desktop system.

[0094] Specifically, the screen lock command is sent to the remote desktop server on the remote device so that the remote desktop server executes the screen lock command.

[0095] In this application, after obtaining the first instruction, the focus window and the corresponding first desktop system are determined. Then, it is further determined whether the first desktop system can respond to the first instruction, thus identifying the desktop system that ultimately executes the first instruction. This flexibly resolves the instruction conflict problem without configuring two different sets of instructions for the local terminal and the remote device. Furthermore, this application also combines the instruction type of the first instruction with the desktop state of the first desktop system to determine the desktop system responding to the first instruction, enabling more accurate identification of the responder.

[0096] The above-mentioned methods for resolving instruction conflicts can be implemented by an instruction conflict resolution device. For example... Figure 6 As shown, Figure 6 This is a schematic diagram of an embodiment of the instruction conflict resolution apparatus provided in this application. The instruction conflict resolution apparatus 600 is used to implement the instruction conflict resolution method in any of the above embodiments. The instruction conflict resolution apparatus 600 includes: an acquisition module 601 and a first response module 602.

[0097] The acquisition module 601 is used to acquire a first instruction, which is an instruction configured in both the local desktop system and the remote desktop system. The acquisition module is also used to acquire the first desktop system corresponding to the focused window in the display interface of the local terminal, where the first desktop system is the desktop system that provides the display content of the focused window.

[0098] The first response module 602 is used to respond to the first command using a second desktop system when the first desktop system cannot respond to the first command. The second desktop system is a desktop system other than the first desktop system in the local desktop system and remote desktop system.

[0099] In one possible implementation, the device further includes a second response module 603. The second response module 603 is used to respond to the first instruction using the first desktop system when the first desktop system is capable of responding to the first instruction.

[0100] In one possible implementation, the first response module 602 is specifically used to: send a first instruction to the remote desktop server so that the remote desktop server responds to the first instruction.

[0101] In one possible implementation, the first desktop system's inability to respond to the first instruction includes: the first desktop system being in a state of responding to the second instruction, where the effect of the second instruction on the desktop system is the same as the effect of the first instruction on the desktop system.

[0102] In one possible implementation, the first instruction not responding includes: the first desktop system being in a locked state, and the first instruction not being an instruction to unlock the system.

[0103] In one possible implementation, the first desktop system's inability to respond to the first instruction includes: the first desktop system does not have an object to which the first instruction is to be executed.

[0104] In one possible implementation, the focus window is the largest window in the current display interface, or the window located in the center of the current display interface, or the window where the mouse cursor is located, or the window currently active in the first desktop system.

[0105] In one possible implementation, the first instruction includes one or more of the following: screen lock instruction, minimize instruction, maximize instruction, open window instruction, close window instruction, select all instruction, and delete instruction.

[0106] This application also provides a device 700. For example... Figure 7 As shown, Figure 7 This is a schematic diagram of the structure of an embodiment of the device provided in this application. The device 700 includes: a bus 702, a processor 704, a memory 706, and a communication interface 708. The processor 704, the memory 706, and the communication interface 708 communicate with each other via the bus 702. The device 700 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the device 700.

[0107] The 702 bus can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of representation, Figure 7 The bus 704 may be represented by a single line, but this does not mean that there is only one bus or one type of bus. The bus 704 may include a path for transmitting information between various components of the device 700 (e.g., memory 706, processor 704, communication interface 708).

[0108] Processor 704 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0109] The memory 706 may include volatile memory, such as random access memory (RAM). The processor 704 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0110] The memory 706 stores executable program code, and the processor 704 executes the executable program code to implement the functions of the aforementioned acquisition module, first response module, and second response module, thereby implementing the instruction conflict resolution method of any of the above embodiments. That is, the memory 706 stores instructions for executing the instruction conflict resolution method of any of the above embodiments.

[0111] Alternatively, the memory 706 stores executable code, and the processor 704 executes the executable code to implement the function of the aforementioned instruction conflict resolution device, thereby implementing the instruction conflict resolution method of any of the above embodiments. That is, the memory 706 stores instructions for executing the instruction conflict resolution method of any of the above embodiments.

[0112] The communication interface 708 uses transceiver modules such as, but not limited to, network interface cards and transceivers to enable communication between the device 700 and other devices or communication networks.

[0113] The device 700 can be a thin client, or a terminal device with communication and display functions such as a desktop computer, laptop computer, tablet computer, or smartphone.

[0114] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to perform a solution for instruction conflicts according to any of the above embodiments.

[0115] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium capable of being stored by a computing device. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive), etc. The computer-readable storage medium includes instructions that instruct the computing device to execute a conflict resolution method according to any of the above embodiments.

[0116] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0117] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, indirect coupling or communication connection between devices or units, and may be electrical or other forms.

[0118] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0119] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0120] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, all or part of the technical solution of this application can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

Claims

1. A method for responding to instructions, characterized in that, A local terminal runs a local desktop system and a remote desktop client. The remote desktop system on which the remote desktop client resides also includes a remote desktop server. The method includes: Obtain the first instruction; Obtain the first desktop system corresponding to the focus window in the display interface of the local terminal. The first desktop system is a desktop system that provides the display content of the focus window. The focus window is the window with the largest area in the display interface, or the window located in the center of the display interface, or the window where the mouse cursor is located, or the window where the first desktop system is activated. If the first desktop system cannot respond to the first command, then the second desktop system is used to respond to the first command. The second desktop system is the desktop system other than the first desktop system in the local desktop system and the remote desktop system. If the first desktop system is able to respond to the first instruction, then the first desktop system is used to respond to the first instruction.

2. The method according to claim 1, characterized in that, When the first desktop system is a local desktop system, the step of responding to the first instruction using the second desktop system includes: The first instruction is sent to the remote desktop server so that the remote desktop server responds to the first instruction.

3. The method according to claim 1, characterized in that, The first desktop system's inability to respond to the first command includes: The first desktop system is in a state of responding to the second instruction, and the effect of the second instruction on the desktop system is the same as the effect of the first instruction on the desktop system.

4. The method according to claim 1, characterized in that, The first desktop system's inability to respond to the first command includes: The first desktop system is in a locked state, and the first instruction is not an instruction to unlock the system.

5. The method according to claim 1, characterized in that, The first desktop system's inability to respond to the first command includes: The first desktop system does not have an object to be executed by the first instruction.

6. The method according to claim 1, characterized in that, The first instruction includes one or more of the following: Lock screen command, minimize command, maximize command, open window command, close window command, select all command, delete command.

7. A device for responding to instructions, characterized in that, The device includes: The acquisition module is used to acquire the first instruction; The acquisition module is further configured to acquire the first desktop system corresponding to the focus window in the display interface of the local terminal. The first desktop system is a desktop system that provides the display content of the focus window. The focus window is the window with the largest area in the display interface, or the window located in the center of the display interface, or the window where the mouse cursor is located, or the window where the first desktop system is activated. The first response module is used to respond to the first instruction using a second desktop system when the first desktop system cannot respond to the first instruction, wherein the second desktop system is a desktop system other than the first desktop system in the local desktop system and remote desktop system; the second response module is used to respond to the first instruction using the first desktop system when the first desktop system can respond to the first instruction.

8. The apparatus for command response according to claim 7, characterized in that, The first response module is specifically used for: The first instruction is sent to the remote desktop server so that the remote desktop server responds to the first instruction.

9. The apparatus for command response according to claim 7, characterized in that, The first desktop system's inability to respond to the first command includes: The first desktop system is in a state of responding to the second instruction, and the effect of the second instruction on the desktop system is the same as the effect of the first instruction on the desktop system.

10. The apparatus for command response according to claim 7, characterized in that, The first instruction cannot respond to the first instruction including: The first desktop system is in a locked state, and the first instruction is not an instruction to unlock the system.

11. The apparatus for command response according to claim 7, characterized in that, The first desktop system's inability to respond to the first command includes: The first desktop system does not have an object to be executed by the first instruction.

12. The apparatus for command response according to claim 7, characterized in that, The first instruction includes one or more of the following: Lock screen command, minimize command, maximize command, open window command, close window command, select all command, delete command.

13. A device, characterized in that, The device includes a processor and a memory, the processor being coupled to the memory, the processor being configured to cause the device to implement the method as described in any one of claims 1-6 based on instructions stored in the memory.

14. A computer-readable storage medium, characterized in that, Includes instructions that, when executed by a processor, cause the device to implement the method as described in any one of claims 1-6.

15. A computer program product, characterized in that, The computer program product includes a program that, when run on a processor, implements the method according to any one of claims 1-6.

Citation Information

Patent Citations

  • Operation processing method and device

    CN106445535A

  • Gesture operation method and device

    CN112839135A

  • Two-desktop remote control systems and method

    CN1928806A