1. A computer executable method for use with a first application, second application, and a virtual runtime engine, both the virtual runtime engine and the second application executing on a host operating system that is executing on a computing device, the first application being configured to generate a first user interface, the second application displaying a second user interface, the second user interface being different from the first user interface, the method comprising: initiating, by the computing device, execution of the first application by the virtual runtime engine, the virtual runtime engine comprising a plurality of hooks, the first application comprising one or more threads, and the virtual runtime engine comprising a corresponding hook procedure for each of the one or more threads, each hook procedure being executable by a corresponding one of the hooks, the corresponding hook being configured to monitor the thread for user interface messages created by the first application, the corresponding hook triggering the execution of the corresponding hook procedure whenever the corresponding hook detects a user interface message has been generated by the thread, when executed, the corresponding hook procedure providing an indication to a third application executing on the computing device that a user interface message has been generated; receiving, by the third application executing on the computing device, an indication that a user interface message has been generated by the first application, the user interface message comprising instructions to generate or modify the first user interface, neither the first application nor the host operating system generating or displaying the first user interface; generating, by the third application executing on the computing device, at least one user interface command for the second user interface, the at least one user interface command being generated based on the indication that the user interface message had been generated by the first application; and sending, by the third application executing on the computing device, the at least one user interface command to the second application, the at least one user interface command being configured to cause the second application to modify the second user interface.