LogoLogo
Download Free TrialLive DemoGet a QuoteContact Us
Thinfinity® VirtualUI 3.0
Thinfinity® VirtualUI 3.0
  • Thinfinity VirtualUI 3.0
  • Architecture
  • Getting Started Section
    • Getting Started
      • Installing Thinfinity VirtualUI
      • Simple UI Remoting
        • Compiling and Testing a WinForms Application
        • Compiling and Testing a Delphi Application
        • Compiling and Testing a C++ Application
        • Registering the Application in Thinfinity VirtualUI Server
        • Accessing the App from the Web
        • Application Execution Behavior
        • List of available demos for download
      • Adapting the Application
        • Customizing the Web Page
          • Preparing the Web Page
          • Customizing Settings
        • Programming VirtualUI
          • Handling VirtualUI Events
          • Using ClientSettings from Javascript
  • Advanced Programming Section
    • Advanced Programming
      • Javascript Remote Objects
        • The Development Lab
        • Life cycle of the jsRO Objects
        • Creating jsRO Objects
        • Updating Properties
        • OnPropertyChange(), OnSet() y OnGet() Events
        • jsRO Remote Calls
          • Remote Methods
          • Custom Events
        • Available demos for Javascript Remote Objects
      • Adding Web Content
        • The HTMLDoc Object
          • Loading Scripts
          • Importing HTML files
          • Accessing local files
          • Creating Web Component instances
        • Web Components
          • Loading Web Component Scripts
          • Importing Web Component HTML files
          • Accessing local resources from the Web Component
  • Advanced Features Section
    • Advanced Features
      • Scaling and Load Balancing
        • Scaling and Load Balancing Configurations
        • Installing components
        • Enabling Multiple RDS Accounts
        • Configuring Load Balancing
        • Sharing your License
          • Installing the License Server Manager
          • Add a Licence
            • Get a new Trial Serial Number
            • Activate a Serial Number Online
            • Activate a Serial Number Offline
          • Sharing your License over multiple Severs
      • Enhanced Browser and DPI Support
        • Model Inheritance
        • Property Reference
        • The Calculation Process
        • Examples
      • One-Time URL
        • How it Works
        • Creating a One-Time URL
      • Passing Command Line Arguments to VirtualUI Apps
        • Setting Command Line Arguments in the Application Profile
        • Sending Command Line Arguments in the VirtualUI URL
        • Building the URL in Javascript
        • Combining Application Profile and URL Command Line Arguments
      • Recording and Playing Sessions
        • Recording a Session
          • The OnRecorderChanged Event
      • Recover Browser Information with BrowserInfo
      • Change Browser Behavior Using ClientSettings
      • End-User Authentication
        • Entering Credentials
        • Processing End-user Credentials
        • Authentication Methods
          • Windows Logon
          • RADIUS
          • OAuth 2.0
            • OAuth2Models.ini
            • CSS for SSO Options
          • External DLL
            • Authentication API
      • Virtualization
        • File System Virtualization
          • Creating File System Redirections
          • The .vdir Files
          • Testing the File System Virtualization
        • Registry Virtualization
          • Creating Registry Redirections
          • The .vreg Files
          • Testing Registry Virtualization
        • Implementing Virtualization in Your Application
      • OEM Licensing
        • How to Create and Revoke Licenses
          • Creating Licenses
          • Revoking Licenses
      • Silent Install Options
  • Web Interface Section
    • Web Interface
      • login.html
      • index.html
      • app.html
        • app.js
        • The DockMenu Widget
        • Printing
          • How to install and use the Printer Agent
          • Printing Preview and Printing
          • Remote Printing SDK for Thinfinity - C#
          • Remote Printing SDK for Thinfinity - Delphi
      • lab.html
  • Configuration Reference Section
    • Configuration Reference
    • Development Server
      • General
      • License Manager
        • Activate a Serial Number Offline
        • Activate a Serial Number Online
        • Get a new Trial Serial Number
        • Proxy Activation
    • Server Manager
      • General
        • Managing the SSL Certificate
          • The Default Embedded Certificate
          • A Self-Signed Certificate
          • A CA Certificate
      • Sessions
      • Applications
        • Application Profile
          • General
          • Credentials
          • Permissions
          • Restrictions
          • Access Hours
          • Authentication Methods
        • Weblink Profile
          • Permissions
      • Authentication
        • Mappings
        • 2FA
          • TOTP
          • Duo Authentication Method Settings
            • How to configure DUO
        • Radius Authentication Method Settings
        • Oauth 2.0 Authentication Method Settings
          • Configure OAuth with Auth0
          • Configure OAuth with Okta
        • External DLL Authentication Method Settings
        • SAML Authentication Method Settings
          • Configure SAML with Okta
          • Configure SAML with Centrify
      • Services
      • License Manager
        • License Activation
          • Proxy Activation
          • Get a new Trial Serial Number
          • Activate a Serial Number Online
          • Activate a Serial Number Offline
    • Gateway Manager
      • Protection
  • Appendix A - Dialogs
    • Appendix A - Dialogs
    • Message Dialogs
      • Message Dlg
      • Input Box
      • Formatted Message
    • Printing Dialogs
      • Print
      • Page Setup
      • Print Preview
    • File Dialogs
      • Open File
      • Save As
  • Appendix B - Tailoring the Interface
    • Customizing the Web Interface
      • Changing the Logo
      • Customizing the Web Files
      • Files Location
  • Symbol Reference Section
    • Thinfinity.VirtualUI Class
Powered by GitBook
On this page
Export as PDF
  1. Advanced Features Section
  2. Advanced Features

Recover Browser Information with BrowserInfo

When using VirtualUI, it is often necessary to be aware of some features and capabilities of the device from which end users are accessing our application.

The VirtualUI class has a property called BrowserInfo, which contains data about the browser being used. This information can assist us in delivering the best possible user experience.

In the list below we will find a detailed reference of the information that BrowserInfo will deliver:

Attribute

Description

Username

Returns the logged-on username.

IPAddress

Returns the client's ip address.

Location

Returns the URL of the current application.

UniqueBrowserId

Identifies an instance of a browser. Each time an end-user opens the application from a different browser window, this identifier will be have a different value.

UserAgent

Returns the browser's User Agent string. This value is very important to identify which browser type is used, if the remote device is a mobile, etc.

An important value to consider is the UserAgent property. When establishing a connection, the browser sends VirtualUI a data string indicating its brand and version, which OS it is running on, and the brand and model of the device that is being used. This value is known as the userAgent. Using this value we can infer, for example, if the user is connecting from a mobile device and then modify some specific feature, layout or functionality of our application to better suit that device.

Information relative to the available screen space:

Attribute

Description

BrowserWidth

Returns the width of the HTML element containing the VirtualUI viewer, in pixels.

BrowserHeigth

Returns the height of the HTML element containing the VirtualUI viewer, in pixels.

ScreenWidth

Returns the width of the end-user's device screen, in pixels.

ScreenHeight

Returns the height of the end-user's device screen, in pixels.

ScreenResolution

Returns the application screen resolution defined in the application profile.

ViewWidth

Returns the width of the VirtualUI viewer, in pixels.

ViewHeight

Returns the height of the VirtualUI viewer, in pixels.

Orientation

Returns the browser's orientation.

It is also worth mentioning that when using VirtualUI, the desktop size is dynamic. This means that the space available to display the application is correlated to the available space in the browser screen and it is not limited to a fixed desktop size space —as it would happen, for example, in an RDP connection, where the desktop size is defined when the connection is established.

The following C# example shows how to center a window of our application on this virtual desktop as needed, previously controlling its size if it exceeds the available space:

using Cybele.Thinfinity;...

...

...

private VirtualUI vui;

public Form1()

{

InitializeComponent();

vui = new VirtualUI();}

private void CenterThisWindow(object sender, EventArgs e)

{

this.WindowState = FormWindowState.Normal;

if (vui.BrowserInfo.ViewHeight < (this.Height + 20)) {

this.Height = vui.BrowserInfo.ViewHeight - 20;

}

if (vui.BrowserInfo.ViewWidth < (this.Width + 20))

{

this.Width = vui.BrowserInfo.ViewWidth - 20;

}

this.Top = (vui.BrowserInfo.ViewHeight - this.Height) / 2;

this.Left = (vui.BrowserInfo.ViewWidth - this.Width) / 2;

}

PreviousThe OnRecorderChanged EventNextChange Browser Behavior Using ClientSettings

Last updated 4 years ago