Virtual application execution system and method
First Claim
1. In an application hosting engine executing within a computing environment comprising a processor, a memory connected to the processor and an operating system stored in the memory, a method for virtually executing an executable code object, comprisingreceiving, by the application hosting engine, a trigger to launch an executable code object locally within the context of the operating system;
- launching, by the application hosting engine, the executable code object locally as a silent process within the context of the operating system, wherein the silent process is operative to cause a root window to be created locally within the context of the operating system and render an output to the root window;
intercepting, by the application hosting engine, the output rendered by the silent process, wherein intercepting the output rendered by the silent process comprisesiteratively scanning, in response to launching the executable code object and as the executable code object launches, system windows of the operating system against a set of expected attributes to initially detect the root window, wherein the set of expected attributes comprises a process identifier, a window name and an indication of a root window; and
writing the intercepted, rendered output to an off-screen memory.
0 Assignments
0 Petitions
Accused Products
Abstract
A virtual execution environment for software applications and other code objects. In one implementation, the present invention allows for virtual execution of applications by transparently capturing the rendered output of natively executed applications, and delivering the output to other processes on the same platform or to remote devices in a platform agnostic manner.
-
Citations
26 Claims
-
1. In an application hosting engine executing within a computing environment comprising a processor, a memory connected to the processor and an operating system stored in the memory, a method for virtually executing an executable code object, comprising
receiving, by the application hosting engine, a trigger to launch an executable code object locally within the context of the operating system; -
launching, by the application hosting engine, the executable code object locally as a silent process within the context of the operating system, wherein the silent process is operative to cause a root window to be created locally within the context of the operating system and render an output to the root window; intercepting, by the application hosting engine, the output rendered by the silent process, wherein intercepting the output rendered by the silent process comprises iteratively scanning, in response to launching the executable code object and as the executable code object launches, system windows of the operating system against a set of expected attributes to initially detect the root window, wherein the set of expected attributes comprises a process identifier, a window name and an indication of a root window; and writing the intercepted, rendered output to an off-screen memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus for virtually executing an application, comprising:
-
a processor; a memory; an operating system stored in the memory; and a virtual application execution engine, physically stored in the memory, comprising instructions operable to cause the processor and the apparatus to; receive, by the virtual application hosting engine, a trigger to launch an executable code object locally within the context of the operating system; launch, by the virtual application hosting engine, the executable code object locally as a silent process within the context of the operating system, wherein the silent process is operative to cause a root window to be created locally within the context of the operating system and render an output to the root window; intercept, by the virtual application hosting engine, the output rendered by the silent process by iteratively scanning, in response to launching the executable code object and as the executable code object launches, system windows of the operating system against a set of expected attributes to initially detect the root window, wherein the set of expected attributes comprises a process identifier, a window name and an indication of a root window; and write the intercepted, rendered output to an off-screen buffer in the memory. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A non-transitory machine-readable medium comprising an application hosting engine for virtually executing a software application within the context of an operating system, the application hosting engine comprising instructions operable to cause a programmable processor to:
-
receive, by the application hosting engine, a trigger to launch an executable code object locally within the context of the operating system; launch, by the application hosting engine, the executable code object locally as a silent process within the context of the operating system, wherein the silent process is operative to cause a window to be created locally within the context of the operating system and render an output to the window; intercept, by the application hosting engine, the output rendered by the silent by iteratively scanning, in response to launching the executable code object and as the executable code object launches, system windows of the operating system against a set of expected attributes to initially detect the root window, wherein the set of expected attributes comprises a process identifier, a window name and an indication of a root window; and write the intercepted, rendered output to an off-screen buffer or managed graphics context in a computer readable memory.
-
-
23. In an application hosting engine executing within a computing environment comprising a processor, a memory connected to the processor and an operating system stored in the memory, a method for virtually executing an executable code object, comprising:
-
receiving, by the application hosting engine, a trigger to launch an executable code object locally within the context of the operating system; launching, by the application hosting engine, the executable code object locally as a silent process within the context of the operating system, wherein the silent process is operative to cause a window to be created locally within the context of the operating system and render a native output to the window; intercepting, by the application hosting engine, the native output rendered by the silent process by iteratively scanning, in response to launching the executable code object and as the executable code object launches, system windows of the operating system against a set of expected attributes to initially detect the window, wherein the set of expected attributes comprises a process identifier, a window name and an indication of a root window; and converting the native output of the silent process to a first network protocol stream; and transmitting the first network protocol stream to a remote node. - View Dependent Claims (24, 25, 26)
-
Specification