|Manuals

Known Issues

This page lists known issues that affect applications running under Thinfinity VirtualUI, with their available workarounds.

Embedded Chromium Windows Render Blank

Symptom. Windows drawn with DirectComposition and DXGI appear empty in the browser session: no title bar, no menu, and no content in the client area. The window is there — it just renders blank.

This affects applications that embed a Chromium-based browser, such as CefSharp or WebView2 controls, and Chromium browsers launched inside the session. A typical example is the browser DevTools window (F12), which opens but shows nothing.

Cause. VirtualUI captures the application’s windows to stream them to the browser. Content that Chromium renders through DirectComposition and DXGI — its multi-process GPU compositing path — falls outside what the capture currently supports.

Workaround. Run the embedded browser in single-process mode, which forces all rendering into one process that VirtualUI can capture. For Chromium-based engines, pass the single-process command-line switch; where you set it depends on the embedding framework — for example, through CefSettings command-line arguments in CefSharp.

Warning

Single-process mode is a Chromium debugging feature: it trades away process isolation and may affect the stability or performance of the embedded browser. Evaluate it against your application before adopting it in production. For some applications it may not be possible or acceptable.

Clipboard Shortcuts Fail for Application-Specific Content

Symptom. Inside the session, Ctrl+C and Ctrl+V fail for content in the application’s own formats — objects, shapes, or other structured elements — even though the same copy and paste works from the application’s context menu. The clipboard may also occasionally end up holding unexpected content.

Cause. Clipboard synchronization keeps the application’s clipboard in sync with the browser by rewriting the Windows clipboard with the content that travels to and from the user’s device, and by synthesizing the full shortcut key sequences. Only content in the synchronized formats — text, HTML, RTF, and images — survives that round trip; content in application-internal formats is lost when the synchronization overwrites the clipboard.

Workaround. Enable the passive clipboard mode. Add the following to thinfinity.params.ini in the Thinfinity VirtualUI binaries folder — bin32 or bin64, matching the application’s bitness — and restart the services:

[Options]
PassiveClipboard=True

You can also place these settings in an <application>.thinfinity.ini file next to the application’s executable, which applies them to that application only.

In passive mode, VirtualUI stops rewriting the Windows clipboard and forwards the user’s real keystrokes, so Windows performs the copy and paste itself — the application’s Ctrl+C and Ctrl+V work with any content format the application supports.

Warning

Passive clipboard trades local synchronization for in-application fidelity: while it is enabled, content from the user’s local clipboard is not pasted into the application. Use it for applications whose in-app copy and paste matters more than moving clipboard content in and out of the session.

Info

If the application still needs to receive some content from the user’s device, combine passive mode with the MergeClipboardFormats setting: the listed formats are merged into the application clipboard without emptying it, and this merge applies even while PassiveClipboard=True.

Application Audio Does Not Reach the Browser

Symptom. Sounds the application plays — media playback, alerts, beeps — are heard on the server, not in the user’s browser session.

Cause. VirtualUI streams the application’s windows to the browser; the session pipeline does not capture the Windows audio output.

Workaround. Play audio in the browser itself through VirtualUI’s web integration: the vui-audio web component drives an HTML5 audio element in the session page from the application code, so media plays natively on the user’s device. A working vui-audio demo — for C# and VCL — is available in the public GitHub repository under WebComponents.

Read more