Take your software to the web with VirtualUI
For years, developers invested time and resources in coding applications to be run on Windows servers, desktops PCs, and laptops. Nowadays, many users are also working on mobile devices such as iPads® and cell phones.
That’s why Cybele Software created Thinfinity VirtualUI, a web-enabling SDK solution to turn Win32 apps into HTML5. With VirtualUI you can take your Windows software to the web in minutes. Sounds too good to be true, right?
Since Thinfinity VirtualUI was first released, we have corresponded heavily with our users, who have presented us with all sorts of enquiries.
We include here some of the Thinfinity VirtualUI questions we have received, in the hopes that they can be useful for other users. Some of this feedback has been used for polishing our documentation or has turned into other blog entries. Some of our user’s questions have even played a key role in enhancing VirtualUI, providing us with insights on how to develop a product that better fits our users’ needs.
some questions about VirtualUI:
Q: “I’m using Delphi and I would like to keep the app single-source. Is there any way to make it so that the app does not start in web mode during development? Can I add a switch so that it runs as a desktop application, and only runs in web mode when it is started from a browser?”
A: If you want to run the application in desktop mode from Delphi, you just have to run the application without debugging.
But if you need to debug the application in desktop mode, you’ll have to comment the VirtualUI_Autorun unit reference.
Q: “After an app is added to the development server manager, I am not sure how to make it start from the browser. Or is this not possible during development testing?”
A: Yes, it’s possible.
In order to start the application from the browser, you will have to run it in debug mode from the development environment and call it from the browser using the Virtual Path value defined for the application, following this format:
http[s]://<myVirtualUIServerURL>/<Virtual Path value>/
Q: “Users will be accessing my application from multiple devices with different screen sizes. Is it possible to detect what the screen size is at the start of the session and then adjust accordingly? And is it possible to run the application maximized in the browser window, even if this means scaling up?”
A: You can do it from your application using the BrowserInfo property of the VirtualUI class.
Also you can use the “Fit to browser” resolution mode and take advantage of the new Enhanced Browser and Device DPI support.
Q: “On a mobile device, VirtualUI is positioning a cursor that you have to drag around, and the click event occurs where the cursor is, instead of occurring in the coordinates where the finger tap was done. Is it possible to use absolute positioning and don’t show the cursor?”
A: Web-enabled applications bear more similarities with desktop applications than mobile applications, in terms of touch behavior. By default, Thinfinity VirtualUI transforms touch gestures into relative mouse position coordinates in order to replicate the way a touchpad works. However, if you prefer the classic mobile absolute positioning look and feel, you can enable it by modifying the VirtualUI cursor behavior by code:
virtualui.ClientSettings.MouseMoveGestureStyle := MM_STYLE_ABSOLUTE; virtualui.ClientSettings.MouseMoveGestureAction := MM_ACTION_WHEEL; virtualui.ClientSettings.CursorVisible := FALSE;
Setting the above lines in the application code hides the cursor and enables the “like mobile” touch mode.
We would like to thank all of our users who work with us, sending their suggestions and inquiries, and also encourage those who are evaluating our product to contact us if they need any kind of assistance with their deployment.
Aditional articles to learn more about Thinfinity VirtualUI: (each one will open on a new window)
- How to virtualize your applications
- Multiple RDS sessions to scale Thinfinity VirtualUI availability
More about VirtualUI’s features: (each one will open on a new window)
- Customize Thinfinity VirtualUI’s Landing Pages
- Using One-Time URL for single sign-on scenarios or one-time invitations
- Playing recorded VirtualUI sessions
Development tutorials for your VirtualUI project: (each one will open on a new window)
- Thinfinity jsRO remote events in C++
- Run Web-Enabled Applications from the IDE
- Passing command line arguments to VirtualUI apps
- Remote Raw Printing from VirtualUI-Enabled Apps
- Fixing “Error 5: Access is Denied” when using “Run As” command
- Keep child windows in front!
- AVAST Antivirus is blocking VirtualUI applications in Dev Mode
- Enhanced Browser and Device DPI support
- Enhanced support for DirectX-based GUI frameworks (WPF, FireMonkey, etc) and new C++ native library
- Browser within the browser: breaking the Matryoshka effect