LogoLogo
Download Free TrialLive DemoGet a QuoteContact Us
  • Thinfinity® Workspace
  • About This Document
  • Introduction
  • What's new in Thinfinity® Workspace
  • Architecture
  • Security
  • Getting Started Section
    • Getting Started
    • Installing Thinfinity® Workspace
    • Customizing Thinfinity® Workspace
      • Setting the Access Security Level
        • Access Profiles
          • RDP Profiles
            • Creating an RDP Profile
            • Editing an RDP Profile
            • Disabling an RDP Profile
            • Removing an RDP Profile
            • The "[+]" Profile
          • Web Link Profiles
            • Creating a Web Link Profile
            • Editing a Web Link Profile
            • Disabling a Web Link Profile
            • Removing a Web Link Profile
          • RDS Web Feed Profiles
            • Creating an RDS Web Feed Profile
            • Editing an RDS Web Feed Profile
            • Disabling an RDS Web Feed Profile
            • Removing an RDS Web Feed Profile
          • VNC/RFB Profile
            • Creating a VNC/RFB Profile
            • Editing a VNC/RFB Profile
            • Disabling a VNC/RFB Profile
            • Removing a VNC/RFB Profile
          • Telnet/SSH profile
            • Creating a Telnet/SSH Profile
            • Editing a Telnet/SSH Profile
            • Disabling a Telnet/SSH Profile
            • Removing a Telnet/SSH Profile
      • Testing Internal Access
      • Configuring Internet Access
      • Enabling Remote Sound
      • Mapping Remote Drives
        • Intermediate Disks
        • Shared Folders
    • After Customization
      • Connecting to a Desktop
      • Connecting to an Application
      • Performing a File Transfer
        • Navigating
        • File Options
        • Remote Folder Area Options
        • Downloading and Uploading files
    • Supported RDP Shortcut Keys
    • Using Thinfinity® Workspace for the First Time
      • Verifying the Communication Settings
      • Connecting to a desktop
  • Advanced Settings Section
    • New in Thinfinity® Workspace
      • Web Folder
      • Web VPN
      • Bidirectional Audio Redirection
      • Remote Active Directory
        • How to install and configure Thinfinity® Remote AD Services
        • Active Directory credentials mapping
      • Secondary Broker Pool
        • Architecture
        • How To Install a Secondary Broker
        • How To Add a Pool in the Primary Broker
      • H264 Support
        • How to Enable H264 on your Access Profile
        • Preparing a Remote Desktop for H264 support
      • Web Profile Manager
        • Remote Desktop
        • VNC/RFB
        • Terminal
        • Web Link
        • Web VPN
        • Labels
        • Edit Web Profiles
          • General
          • Display
          • Resources
          • Program
          • Experience
          • Advanced
          • Access Hours
          • Permissions
      • WebBridge - Direct File Transfer
        • How to install Thinfinity® WebBridge
        • WebBridge: User Experience
    • Thinfinity® Configuration Manager
      • General
      • Broker
      • Authentication
        • OAuth/2
          • Methods
          • Settings
          • Mappings
          • Configure OAuth with Okta
          • Configure OAuth with Auth0
        • RADIUS
          • Settings
          • Mappings for SSO
        • TOTP (Time-based One-time Password)
          • TOTP Settings
      • Access Profiles
        • RDP Profile Editor
          • General
            • Setting up a Hyper-V Profile
            • Setting up an RDS Collection Profile
          • Display
          • Resources
          • Program
          • Experience
          • Advanced
          • Printer
          • Permissions
          • Restrictions
          • Access Hours
          • Authentication Methods
        • Web Link Profile Editor
          • General
          • Permissions
          • Restrictions
          • Access Hours
          • Authentication Methods
        • VNC / RFB Profile Editor
          • General
          • Display
          • Permissions
          • Restrictions
          • Access Hours
          • Authentication Methods
        • Telnet/SSH Profile Editor
          • General
          • SSL
          • SSH
          • Display
          • Options
          • Permissions
          • Restrictions
          • Access Hours
          • Authentication Methods
        • Web VPN
          • General
          • Permissions
          • Restrictions
          • Access Hours
          • Authentication Methods
      • Folders
      • Permissions
      • External DLL Authentication Method Settings
      • DUO Authentication Method Settings
        • How to configure DUO
      • SAML Authentication Method Settings
        • Configure SAML with Okta
        • Configure SAML with Centrify
  • Gateway Manager
    • Managing the SSL Certificate
      • The Default Embedded Certificate
      • A Self-Signed Certificate
      • A CA Certificate
  • License Manager
    • License Activation
    • Proxy Activation
    • Get a new Trial Serial Number
    • Activate a Serial Number Online
    • Activate a Serial Number Offline
    • Registering Your License With The License Server Manager
  • Custom Settings
    • Extend the Thinfinity® Workspace Toolbar
  • Customizing the Toolbar
    • Using customsettings.js
    • Using the 'connect' Method
  • Remote FX
  • Save Session
    • Record a Session
    • Play Recorded Sessions
  • Multi-touch Redirection
  • Enhanced Browser and DPI Support
    • Model Inheritance
    • Property Reference
    • The Calculation Process
    • Examples
  • Silent Install Options
  • Credentials Management
    • User-based Access Profiles
    • Credentials Management
  • Customize Translation
  • Mobile Devices Section
    • Mobile Devices
    • Getting into Thinfinity®
    • Mouse Control
    • Keyboards and Toolbars
    • Gestures
    • Disconnecting from Thinfinity®
    • iPad Application
  • Scaling and Load Balancing Section
    • Scaling & Load Balancing
    • Scaling and Load Balancing Configurations
    • Installing Components
    • Configuring a Load Balancing Scenario
    • How to configure your license
  • Integrating Thinfinity® Workspace Section
    • Integrating Thinfinity® Workspace
    • External Authentication
      • Apikey
    • Single sign-on
      • Facebook OAuth Authentication Example
      • Google OAuth/2
        • Google Client ID for Web Applications
      • RADIUS
    • Customizing the Web Interface
      • Changing the Logo
      • Customizing the Web Files
      • Files Location
    • Web Services API
      • Architecture
      • Installing the Web Service
      • Setting up the Communication Settings
      • Profiles Web Service
        • Methods
        • Types
          • The WS Profile type
        • The Demo Applications
      • Analytics Web Service
        • Methods
        • Types
          • WSQueryInfo
          • WSQueryRange
          • WSDBLoginRecord
          • WSSessionRecord
          • WSDBConnectionRecord
          • WSDBBrowserRecord
        • The Demo Application
    • One-Time-URL
      • Configuring the Connection
      • Enabling Features
    • Thinfinity® RemoteAD API reference
    • Thinfinity® REST API Reference
  • User guide Section
    • User Guide
    • Logging In
    • Advanced Web Features
      • Tree View
      • Listing Options
      • Search bar
    • Accessing from Mobile Devices
      • Connecting with Open Parameters
        • General
        • Display
        • Resources
        • Program
        • Experience
        • Advanced
      • Connecting with Profiles
    • Toolbar
      • Actions
      • File Transfer
      • Options
      • Disconnect
    • Features
      • File Transfer
        • Navigating
        • File Options
        • Remote Folder Area Options
        • Downloading and Uploading files
      • Remote Printer
      • Remote Sound
      • Share Session
      • Mapped Drives
      • Analytics
        • Sessions
        • Connections
        • Logins
        • Browsers
        • Filter
        • Configuring MS SQL Server
          • Analytics Tables Reference
    • Disconnecting
Powered by GitBook
On this page
  1. Custom Settings

Extend the Thinfinity® Workspace Toolbar

The toolbar.shortcuts Structure

To extend the toolbar with new Send Key options, you have to use the toolbar JSON structure. It contains a javascript object array named shortcuts where each object represents a “Send Key…” menu option and has two fields:

· “text”: It’s the option caption text (String).

· “keys”: It’s an object array, where each element contains a keyboard action.

Why is “keys” an array? Because many times you need to press more than one key to create a “keyboard gesture”. The best example of this are the [CTRL]+any key combinations, where the keyboard sequence is…

· Press [CTRL] (keydown)

· Stroke any other key (keydown, keypress, keyup)

· Release [CTRL] (keyup)

The same occurs with [SHIFT], [ALT], the [SHIFT]+[ALT], [CTRL]+[SHIFT] combinations, etc.

Other options can be added to supply and/or complement existing actions, or to add useful keystroke sequences to help your users.

To do this, each key action has two fields: a type (action field) and a value (key or text field, depending on the current value of action).

The following table explains each action in detail:

Action name

Meaning

Associated Field

down

It represents a keydown (just the key down, without the key release).

key

stroke

It represents the complete keystroke sequence action, from the keydown  to the keyup (when you press and release a key).

key

up

It represents a keyup (the key release)

key

type

Send text

text

And these are the value types:

Value field

Meaning

key

Numeric code for the key.

text

A text to be remotely "typed".

The following example shows these actions and values in action:

"toolbar": {
 "shortcuts": [
 {
 "text": "Help (F1)",
 "keys": [
 { "action": "stroke", "key": 0x70 } // F1
 ]
 },
 {
 "text": "Find",
 "keys": [
 { "action": "down", "key": 0x11 }, // CTRL
 { "action": "stroke", "key": 0x46 }, //F
 { "action": "up", "key": 0x11 } // CTRL
 ]
 },
 {
 "text": "Type 'Hello'",
 "keys": [
 { "action": "type", "text": "Hello" }
 ]
 },
 {
 "text": "Find 'Hello'",
 "keys": [
 { "action": "down", "key": 0x11 }, // CTRL
 { "action": "stroke", "key": 0x46 }, //F
 { "action": "up", "key": 0x11 }, // CTRL
 { "action": "type", "text": "Hello" },
 { "action": "stroke", "key": 0x0D } //ENTER
 ]
 }
 ]
 }

In this example, the first shortcut sends an F1, the second triggers a find/search (a [CTRL]+F), the third just types “Hello” and the fourth combines the second and third examples to process a find of “Hello”.

There are two ways to add new toolbar options:

· Adding the new options to the customSettings global variable, whose settings will affect all users and all connections in the Thinfinity® Workspace installation.

· Adding the new options to the connection parameters, if you are an integrator who is using the sdk.html page or any other page with an embedded remote desktop.

Using customSettings to Extend the Thinfinity® Workspace Toolbar

The customSettings global variable is a JSON object defined in the customSettings.js file, which you’ll find in the Thinfinity® Workspace installation web folder. This variable, a Javascript object, has attributes to set or modify connection features, including some related to the toolbar. This structure doesn’t have default attributes (they are disabled in the source code) and looks like this:

var customSettings = {
 /*
 "createToolbar": true, // Creates ThinRDP toolbar
 "toolbarVisible": false, // ThinRDP toolbar starts expanded (visible)
 "checkBeforeWindowClose": true, // when false, skips the user confirmation popup of the onBeforeUnload event
 "noSsnDialog": false, // avoids the share session popup dialog
 "noShowPopupsOnClose": false // when true, skips the session closed message popup
 */<
};

To add the toolbar.shortcuts structure to customSettings you’ll just have to do this:

var customSettings = {
 ...
 "toolbar": {
 "shortcuts": [ ... ]
 }
}

Modifying Parameters in an SDK Custom Connection

If you are using the Thinfinity® Workspace SDK and you don’t want to change the toolbar for all users, or if you want to modify it in a conditional way (e.g. depending on a user identification or profile), you can add the toolbar.shortcuts structure to the connection parameters. The difference with the previous example is that this addition is not for all users. This change will only affect SDK users, and optionally you can add this data conditionally.

Add the toolbar.shortcuts structure to the connection parameters for all SDK users:

var mythinrdp = null;
$(document).ready(function () {
 mythinrdp = GetThinRDP("", false);
 mythinrdp.connect({
 targetWindow: "myiframe",
 centered: true,
 ...
 ...
 // Custom shortcuts (Toolbar Actions/Send Keys...)
 "toolbar": {
 "shortcuts": [ ... ]
 }
 });
 ...
});

For a selective toolbar.shortcuts addition, you could do something like this:

var mythinrdp = null;
$(document).ready(function () {
 var params = {
 targetWindow: "myiframe",
 centered: true,
 ...
 ...
 };
 // hypothetical functions created by you
 if (userProfile(CurrentUser()).hasExtendsSendKeys) {
 params["toolbar"] = { "shortcuts": [ ... ] };
 }
 mythinrdp = GetThinRDP("", false);
 mythinrdp.connect(params);
 ...
});
PreviousCustom SettingsNextCustomizing the Toolbar

Last updated 3 years ago