IP Library Granted Patent US 10,019,274
Granted Patent B2
US 10,019,274 · App. 15/017,890 · Granted Jul 10, 2018

Menu bar integration in desktop virtualization environments

Inventor: Tal Zamir (Haifa, IL)
Assignee: VMware, Inc.
G06F9/45545G06F3/0482G06F9/543
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 10,019,274
App. No.
15/017,890
Granted
Jul 10, 2018
Kind
B2
Abstract

A system is described for integrating menu bars of applications executed on a virtual machine in a computing device with menu bars in the host operating system. A hosted hypervisor is executed on the computing device. The hypervisor manages a virtual machine running a guest operating system (OS) on the computing device. An application is executed on the guest OS. A call by the application to the guest OS is detected, the call requesting the guest OS to set a menu bar for the application. The call is intercepted, information regarding the content of the menu bar is retrieved from the intercepted call, and the information is used to set a menu bar for the application in the host OS. Subsequently, when a selection is made from the menu bar in the host OS, the selection is translated to the application running in the virtual machine to effectuate the selection.

Claims (58)

1. A method, comprising:

executing a host operating system (host OS) on a computing device;

executing a hosted hypervisor on the host OS, the hosted hypervisor configured to manage a virtual machine on the computing device that includes a guest operating system (guest OS);

executing an application on the guest OS;

detecting an application programming interface (API) call by the application to the guest OS, the API call requesting the guest OS to set a menu bar for the application;

intercepting the API call;

retrieving information from the intercepted API call related to the content and structure of the requested menu bar;

using the retrieved information to set a menu bar in the host OS corresponding to the menu bar requested by the application running in the guest OS wherein a user is able to interact with the application running in the guest OS via the menu bar in the host OS;

detecting a selection of a menu item from the menu bar in the host OS;

translating a command corresponding to the menu item selection to the application in the virtual machine, comprising:

receiving, by the hosted hypervisor, an identifier corresponding to the selected menu item from the host OS; and

forwarding the identifier to the application to produce the menu item selection in the application.

2. The method of claim 1 , wherein at least one of:

the host OS is a Mac OS operating system and the guest OS is a Windows operating system; or

the guest OS is a Mac OS operating system and the host OS is a Windows operating system.

3. The method of claim 1 , wherein the guest OS is configured to utilize in-window menu bars and the host OS is not configured to utilize in-window menu bars; and

further comprising removing the menu bar from the application window.

4. The method of claim 1 , wherein the using the retrieved information to set a menu bar for the application in the host OS comprises the hosted hypervisor making an API call to the host OS requesting the host OS to set the menu bar.

5. The method of claim 1 , wherein the application window is displayed directly on a desktop of the host OS.

6. A computing device, comprising:

at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the computing device to:

execute a host operating system (host OS) on the computing device;

execute a hosted hypervisor on the host OS, the hosted hypervisor configured to manage a virtual machine on the computing device that includes a guest operating system (guest OS);

execute an application on the guest OS;

detect an application programming interface (API) call by the application to the guest OS, the API call requesting the guest OS to set a menu bar for the application;

intercept the API call;

retrieve information from the intercepted API call related to the content and structure of the requested menu bar;

use the retrieved information to set a menu bar in the host OS corresponding to the menu bar requested by the application running in the guest OS wherein a user is able to interact with the application running in the guest OS via the menu bar in the host OS;

detect a selection of a menu item from the menu bar in the host OS;

translate a command corresponding to the menu item selection to the application in the virtual machine, comprising:

receiving, by the hosted hypervisor, an identifier corresponding to the selected menu item from the host OS; and

forwarding the identifier to the application to produce the menu item selection in the application.

7. The computing device of claim 6 , wherein at least one of:

the host OS is a Mac OS operating system and the guest OS is a Windows operating system; or

the guest OS is a Mac OS operating system and the host OS is a Windows operating system.

8. The computing device of claim 6 , wherein the guest OS is configured to utilize in-window menu bars and the host OS is not configured to utilize in-window menu bars; and

wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to remove the menu bar from the application window.

9. The computing device of claim 6 , wherein the using the retrieved information to set a menu bar for the application in the host OS comprises the hosted hypervisor making an API call to the host OS requesting the host OS to set the menu bar.

10. The computing device of claim 6 , wherein the application window is displayed directly on a desktop of the host OS.

11. A non-transitory computer readable storage medium comprising one or more sequences of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:

executing a host operating system (host OS) on a computing device;

executing a hosted hypervisor on the host OS, the hosted hypervisor configured to manage a virtual machine on the computing device that includes a guest operating system (guest OS);

executing an application on the guest OS;

detecting an application programming interface (API) call by the application to the guest OS, the API call requesting the guest OS to set a menu bar for the application;

intercepting the API call;

retrieving information from the intercepted API call related to the content and structure of the requested menu bar;

using the retrieved information to set a menu bar in the host OS corresponding to the menu bar requested by the application running in the guest OS wherein a user is able to interact with the application running in the guest OS via the menu bar in the host OS;

detecting a selection of a menu item from the menu bar in the host OS;

translating a command corresponding to the menu item selection to the application in the virtual machine, comprising:

receiving, by the hosted hypervisor, an identifier corresponding to the selected menu item from the host OS; and

forwarding the identifier to the application to produce the menu item selection in the application.

12. The non-transitory computer readable storage medium of claim 11 , wherein at least one of:

the host OS is a Mac OS operating system and the guest OS is a Windows operating system; or

the guest OS is a Mac OS operating system and the host OS is a Windows operating system.

13. The non-transitory computer readable storage medium of claim 11 , wherein the guest OS is configured to utilize in-window menu bars and the host OS is not configured to utilize in-window menu bars; and

further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of removing the menu bar from the application window.

14. The non-transitory computer readable storage medium of claim 11 , wherein the using the retrieved information to set a menu bar for the application in the host OS comprises the hosted hypervisor making an API call to the host OS requesting the host OS to set the menu bar.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2016
From: ZAMIR, TAL
To: VMWARE INC
Reel/Frame 037686/0271 →
Continuity (1)
Related Publication 20170228244A1 · Aug 10, 2017