Take your software to the web with VirtualUI

Web enable and modernize Windows apps

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 inquiries.
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.
Questions and Answers about Thinfinity VirtualUI
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.
Have any questions to add to this list? Contact us at [email protected] or leave a message on this same post. We also provide Spanish support.

Thinfinity VirtualUI takes Windows Apps to Web
Aditional articles to learn more about Thinfinity VirtualUI: (each one will open on a new window)

More about VirtualUI’s features: (each one will open on a new window)

Development tutorials for your VirtualUI project: (each one will open on a new window)


Thinfinity Solutions for remote desktop, screen sharing, digital workspace and application virtualization.

Thinfinity VirtualUI

As you already know, Thinfinity VirtualUI is a web-enabling SDK to run apps on a browser without rewriting the code.
If you’re a GitHub user, you may want to check our VirtualUI GitHub project.

Remote Access Solutions

Want to learn more about our remote access applications?

We will be happy to assist you and show you our portfolio for remote desktop, screen sharing, and digital workspace.

Explore our other web RDP and online workspace solutions, enjoy our free trials, or request a custom demo HERE. No commitment!

Comments (2)

Dear Marcello,
VirtualUI requires a development environment like: Microsoft Visual Studio, Visual Basic, Delphi 5 to XE7, C++ Builder, PowerBuilder and others. The application can use .NET WPF, GDI, GDI+ and limited DirectX calls.
Now, regarding the licensing:
CASE A: If you have an in-house project, then you must consider the following:
– if your project requires jsRO, then you need to buy a PRO Developer license ($149)
– if you do not use integration features and you will just publish your app “as is”, then the FREE developer license will work
Appart from that, you need a concurrent user license for each user, prices start at $69 (volume discounts apply!).
CASE B: If you are planning to resell your application please take a look to our OEM bundling options:
In any case, email us to receive more detailed information: [email protected]
Best wishes,

Marcello Fioramonti

Found you at Embarcadero.
I need to publish a VCL app to the web. How does you license work?

Leave a comment

Privacy Preferences
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.