IP Library › Granted Patent US 11,036,308
Granted Patent B2
US 11,036,308 · App. 16/221,849 · Granted Jun 15, 2021

Automated keyboard mapping for virtual desktops

Inventors: Wenping Xu (Nanjing, CN); Junying Gao (Nanjing, CN)
Assignee: Citrix Systems, Inc.
G06F3/0238G06F11/3457G06F11/3688
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,036,308
App. No.
16/221,849
Filed
Dec 17, 2018
Granted
Jun 15, 2021
Kind
B2
Art Unit
2143
USPC
715/773
Abstract

Methods and systems for performing automated keyboard mapping for virtual desktops are described herein. A system may generate a keyboard mapping table containing a plurality of keyboard inputs. The system may simulate a keyboard input locally at the system and using a virtual desktop hosted by a remote desktop platform to generate keyboard simulation outputs in response to a first keyboard input. In response to determining a discrepancy between the keyboard simulation outputs, the system may modify a key value in the keyboard mapping table resulting in a corrected keyboard mapping table, where the key value corresponds to the first keyboard input. In response to receiving a second keyboard input, the system may apply the corrected keyboard mapping table to display a keyboard output at the virtual desktop hosted by the remote desktop platform, where the second keyboard input has the same key value as the first keyboard input.

Claims (46)

1. A system comprising:

at least one processor; and

a memory storing computer readable instructions that, when executed by the at least one processor, cause the system to:

generate a keyboard mapping table containing a plurality of keyboard inputs;

simulate a keyboard input locally at the system and using a virtual desktop hosted by a remote desktop platform to generate keyboard simulation outputs in response to a first keyboard input, wherein:

the keyboard simulation outputs include a local output and an output at the virtual desktop, and

the generation of the keyboard simulation outputs includes use of a script to capture screenshots of the system and the virtual desktop that contain the keyboard simulation outputs;

in response to determining a discrepancy between the keyboard simulation outputs, modify a key value in the keyboard mapping table resulting in a corrected keyboard mapping table, the key value corresponding to the first keyboard input; and

apply, in response to receiving a second keyboard input, the corrected keyboard mapping table to display a keyboard output at the virtual desktop hosted by the remote desktop platform, the second keyboard input having the same key value as the first keyboard input.

2. The system of claim 1 , wherein the computer readable instructions, when executed by the at least one processor, further cause the system to:

receive inputs corresponding to each of the plurality of keyboard inputs, wherein the inputs comprise information corresponding to one or more of: an operating system, a keyboard mode, and a browser; and

install, after receiving the inputs, the inputs, wherein installing the inputs creates a keyboard mapping test environment.

3. The system of claim 2 , wherein the first keyboard input is a multiple keystroke command.

4. The system of claim 1 , wherein the computer readable instructions, when executed by the at least one processor, further cause the system to automatically compile a keyboard mapping test automation script using the keyboard mapping table, wherein compiling the keyboard mapping test automation script causes the system to simulate each of the plurality of keyboard inputs contained in the keyboard mapping table.

5. The system of claim 1 , wherein the keyboard simulation outputs are presented on a display of the system and the virtual desktop hosted by the remote desktop platform, respectively, in response to the first keyboard input.

6. The system of claim 1 , wherein the script comprises a keyboard mapping test automation script.

7. The system of claim 6 , wherein the keyboard mapping test automation script causes the system to:

compare the screenshots to determine whether the keyboard simulation outputs displayed at the system and the virtual desktop match.

8. The system of claim 1 , wherein the keyboard mapping table includes key values corresponding to keyboard inputs, and each key value is an independent computing architecture (ICA) key value.

9. The system of claim 6 , wherein the keyboard mapping test automation script further causes the system to:

in response to determining that the keyboard simulation outputs are equivalent, recording that the key value is correct by marking an ICA value in the keyboard mapping table that corresponds to the first keyboard input.

10. The system of claim 1 , wherein the keyboard input corresponds to one of: a single character and a keyboard command.

11. A method comprising:

generating, by a computing device, a keyboard mapping table containing a plurality of keyboard inputs;

simulating a keyboard input locally at the computing device and using a virtual desktop hosted by a remote desktop platform, to generate keyboard simulation outputs in response to a first keyboard input, wherein:

the keyboard simulation outputs include a local output and an output at the virtual desktop, and

the generation of the keyboard simulation outputs includes use of a script to capture screenshots of the computing device and the virtual desktop that contain the keyboard simulation outputs;

in response to determining a discrepancy between the keyboard simulation outputs, modifying a key value in the keyboard mapping table resulting in a corrected keyboard mapping table, the key value corresponding to the first keyboard input; and

applying, in response to receiving a second keyboard input, the corrected keyboard mapping table to display a keyboard output at the virtual desktop hosted by the remote desktop platform, the second keyboard input having the same key value as the first keyboard input.

12. The method of claim 11 , further comprising:

receiving inputs corresponding to each of the plurality of keyboard inputs, wherein the inputs comprise information corresponding to one or more of: an operating system, a keyboard mode, and a browser; and

installing, after receiving the inputs, the inputs, wherein installing the inputs creates a keyboard mapping test environment.

13. The method of claim 12 , wherein the first keyboard input is a multiple keystroke command.

14. The method of claim 11 , further comprising automatically compiling a keyboard mapping test automation script using the keyboard mapping table, wherein compiling the keyboard mapping test automation script causes the computing device to simulate each of the plurality of keyboard inputs contained in the keyboard mapping table.

15. The method of claim 11 , wherein the keyboard simulation outputs are presented on a display of the computing device and the virtual desktop hosted by the remote desktop platform, respectively, in response to the first keyboard input.

16. The method of claim 11 , wherein the script comprises a keyboard mapping test automation script.

17. The method of claim 16 , wherein the keyboard mapping test automation script causes the computing device to compare the screenshots to determine whether the keyboard simulation outputs displayed at the computing device and the virtual desktop match.

18. The method of claim 11 , wherein the keyboard mapping table includes key values corresponding to keyboard inputs, and each key value is an independent computing architecture (ICA) key value.

19. The method of claim 16 , wherein the keyboard mapping test automation script further causes the computing device to record that the key value is correct in response to determining that the keyboard simulation outputs are equivalent by marking an ICA value in the keyboard mapping table that corresponds to the first keyboard input.

20. One or more non-transitory computer-readable media storing instructions that, when executed by a system comprising at least one processor, a communication interface, and memory, cause the system to:

generate a keyboard mapping table containing a plurality of keyboard inputs;

simulate a keyboard input locally at the system and using a virtual desktop hosted by a remote desktop platform to generate keyboard simulation outputs in response to a first keyboard input, wherein:

the keyboard simulation outputs include a local output and an output at the virtual desktop, and

the generation of the keyboard simulation outputs includes use of a script to capture screenshots of the system and the virtual desktop that contain the keyboard simulation outputs;

in response to determining a discrepancy between the keyboard simulation outputs, modify a key value in the keyboard mapping table resulting in a corrected keyboard mapping table, the key value corresponding to the first keyboard input; and

apply, in response to receiving a second keyboard input, the corrected keyboard mapping table to display a keyboard output at the virtual desktop hosted by the remote desktop platform, the second keyboard input having the same key value as the first keyboard input.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2018
From: XU, WENPING; GAO, JUNYING
To: CITRIX SYSTEMS, INC.
Reel/Frame 047936/0394 →
Continuity (2)
Continuation PCTCN2018114749 · Nov 9, 2018
Related Publication 20200150781A1 · May 14, 2020