Patentable/Patents/US-10956034
US-10956034

Automatic virtual input device

PublishedMarch 23, 2021
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

In one example, a method for a first computing environment (FCE) to automatically display a virtual input device on a display of a second computing environment (SCE) communicatively coupled to the FCE via a main channel. An auxiliary channel is established between the FCE and the SCE. A virtual input device preference is negotiated with the SCE over the auxiliary channel. A selection by the SCE, over the main channel, of an input element of an active FCE application associated with the SCE is detected. In response to the selection, a virtual input device in accordance with the device preference, operable by the SCE to input data to the input element, is automatically caused to be launched.

Patent Claims
14 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A first computing environment (FCE), comprising: a processor; and a memory communicatively coupled to the processor and including instructions executable by the processor for an auxiliary channel module to establish an auxiliary channel between the FCE and a second computing environment (SCE), the auxiliary channel different from a main channel connection between the FCE and the SCE, and to negotiate virtual input device display preferences with the SCE by: if a SCE-side physical input device is a highest priority input device that is present, not assigning a virtual input device; if the SCE-side physical input device is not the highest priority input device that is present, assigning the virtual input device as a FCE-side virtual input device or a SCE-side virtual input device that is the highest priority input device that is present, and a monitor module to, if the virtual input device has been assigned, detect a selection, by the SCE over the main channel, of an input element of an application executing on the FCE and displayed in an interactive window of the SCE, and in response automatically cause the virtual input device, in accordance with the display preferences, to be displayed at the SCE.

2

2. The first computing environment of claim 1 , wherein an operating system of the FCE does not include the FCE-side virtual input device.

3

3. The first computing environment of claim 1 , wherein the application executing on the FCE does not support the virtual input device.

4

4. The first computing environment of claim 1 , wherein an operating system of the FCE has a different platform from an operating system of the SCE.

5

5. A method for a first computing environment (FCE) to automatically display the virtual input device on a display of a second computing environment (SCE) communicatively coupled to the FCE via a main channel, comprising: establishing an auxiliary channel between the FCE and the SCE; negotiating a virtual input device preference with the SCE over the auxiliary channel by: if a SCE-side physical input device is a highest priority input device that is present, not assigning the virtual input device; if the SCE-side physical input device is not the highest priority input device that is present, assigning the virtual input device as a FCE-side virtual input device or a SCE-side virtual input device that is the highest priority input device that is present; if the virtual input device has been assigned: detecting a selection by the SCE, over the main channel, of an input element of an active FCE application associated with the SCE; and in response to the selection, automatically causing the launching, in accordance with the device preference, of the virtual input device operable by the SCE to input data to the input element.

6

6. The method of claim 5 , wherein the input element is an alphanumeric entry control of a graphical user interface presented by the active FCE application, and the selection is a click event or touch event for the alphanumeric entry control.

7

7. The method of claim 5 , wherein the automatically launching comprises: if the device preference is the FCE-side virtual input device, instructing an operating system of the FCE to launch the FCE-side virtual input device; and if the device preference is the SCE-side virtual input device, issuing an instruction to the SCE over the auxiliary channel to launch the SCE-side virtual input device.

8

8. The method of claim 5 , comprising: after the launching, detecting a selection by the SCE of an additional element of the active FCE application, or an activation of a different FCE application; and in response to the selection or the activation, automatically closing the virtual input device.

9

9. A non-transitory computer-readable storage medium having an executable program stored thereon, wherein the program instructs a processor of a first computing environment (FCE) to: establish an auxiliary channel with a second computing environment (SCE), the auxiliary channel different from a main channel with the second computing environment; negotiate virtual input device preferences with the SCE over the auxiliary channel by: if a SCE-side physical input device is a highest priority input device that is present, not assigning a virtual input device; if the SCE-side physical input device is not the highest priority input device that is present, assigning the virtual input device as a FCE-side virtual input device or a SCE-side virtual input device that is the highest priority input device that is present; if the virtual input device has been assigned: monitor interactions by the SCE, over the main channel, with an application executing on the FCE to detect a selection of an input element of the application; and automatically cause the virtual input device, in accordance with the device preferences, to be displayed at the SCE in response to the selection.

10

10. The medium of claim 9 , wherein the display preferences specify use of the SCE-side virtual input device and wherein, to automatically display the SCE-side virtual input device, the program further instructs the processor to: automatically issue a request to the SCE over the auxiliary channel to launch the SCE-side virtual input device, the SCE displaying the SCE-side virtual input device locally on the SCE in response.

11

11. The medium of claim 9 , wherein the display preferences specify use of the FCE-side virtual input device and wherein, to automatically display the FCE-side virtual input device, the program further instructs the processor to: automatically launch the FCE-side virtual input device on the FCE, the FCE-side virtual input device displayed at the SCE via the main channel.

12

12. The medium of claim 9 , wherein, to establish the auxiliary channel, the program further instructs the processor to: establish a virtual channel as the auxiliary channel if the SCE supports virtual channels; and establish a socket connection as the auxiliary channel if the SCE supports network sockets but does not support virtual channels.

13

13. The medium of claim 9 , wherein the FCE is a server, the SCE is a client, and the main channel uses a remote desktop communications protocol (RDCP).

14

14. The medium of claim 9 , wherein the FCE is a guest virtual machine, the SCE is a host machine, and the main channel implements virtualization of the FCE on the SCE.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

July 25, 2016

Publication Date

March 23, 2021

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Automatic virtual input device” (US-10956034). https://patentable.app/patents/US-10956034

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.