REBRANDING THE KBMMW REMOTE DESKTOP PAGE 1/4



Similar documents
To add Citrix XenApp Client Setup for home PC/Office using the 32bit Windows client.

Generate Android App

Load balancing and failover For kbmmw v ProPlus and Enterprise Editions

QUANTIFY INSTALLATION GUIDE

Gladinet Cloud Backup V3.0 User Guide

The All-in-One Support Solution. Easy & Secure. Secure Advisor

Terminal Server Guide

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

RHUB TurboMeeting Web Conferencing and Remote Support Datasheet

DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service

Sharp Remote Device Manager (SRDM) Server Software Setup Guide

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Setting up VPN and Remote Desktop for Home Use

X Series Application Note 43:

Dell Active Administrator 8.0

Medstar Health Dell Services

New Features in XE8. Marco Cantù RAD Studio Product Manager

Installation and Configuration Guide

ANDROID GUEST GUIDE. Remote Support & Management PC Tablet - Smartphone. 1. An Introduction. Host module on your PC or device

Volume SYSLOG JUNCTION. User s Guide. User s Guide

Legal Notes. Regarding Trademarks. Models supported by the KX printer driver KYOCERA MITA Corporation

2X SecureRemoteDesktop. Version 1.1

Gauge Drawing Tool Slider Drawing Tool Toggle Button Drawing Tool One-Way List Drawing Tool... 8

Law Conferencing uses the Webinterpoint 8.2 web conferencing platform. This service is completely reservationless and available 24/7.

Room 337 Technology Documentation

Assignment # 1 (Cloud Computing Security)

Installation Guide for Microsoft SQL Server 2008 R2 Express. October 2011 (GUIDE 1)

Exchange Outlook Profile/POP/IMAP/SMTP Setup Guide

Introduction to TightVNC. Installation. TightVNC for Windows: Installation and Getting Started. TightVNC Version 2.6 Copyright 2012 GlavSoft LLC.

Live Guide System Architecture and Security TECHNICAL ARTICLE

Connecting Software. CB Mobile CRM Windows Phone 8. User Manual

How To Set Up Dataprotect

RDM+ Remote Desktop for Android. Getting Started Guide

ISL AlwaysOn 1.0 Manual

Network Licensing. White Paper 0-15Apr014ks(WP02_Network) Network Licensing with the CRYPTO-BOX. White Paper

Products that are referred to in this document may be trademarks and/or registered trademarks of the respective owners.

User Manual Version p BETA III December 23rd, 2015

Setting up VPN and Remote Desktop for Home Use

VRM Monitor. Online Help

Remote Access and Control of the. Programmer/Controller. Version 1.0 9/07/05

NATIONAL SECURITY AGENCY Ft. George G. Meade, MD

Support Center User Guide

For keyboard and touchscreen BlackBerry devices User manual

The Desktop Sharing Handbook. Brad Hards

Features of AnyShare

A quick user guide for your LX Apollo DVR

Remote Application Server Version 14. Last updated:

Frequently Asked Questions. Troubleshooting

Media Server Installation & Administration Guide

Product Description. Licenses Notice. Introduction TC-200

Avalanche Remote Control User Guide. Version 4.1.3

System Architecture V3.2. Last Update: August 2015

How to develop n-tier applications for ios using kbmmw

This presentation covers virtual application shared services supplied with IBM Workload Deployer version 3.1.

Interacting with Users

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

Semester Thesis Traffic Monitoring in Sensor Networks

VNC User Guide. Version 5.0. June 2012

Install and Configure SQL Server Database Software Interview Questions and Answers

Connecting Software Connect Bridge - Mobile CRM Android User Manual

Remote Desktop In OpenSUSE 10.3

Ultra Thin Client TC-401 TC-402. Users s Guide

ADT Plugin for Eclipse

This guide provides all of the information necessary to connect to MoFo resources from outside of the office

RDM+ Desktop for Windows Getting Started Guide

Here is a demonstration of the Aqua Accelerated Protocol (AAP) software see the Aqua Connect YouTube Channel

Access the GV-IP Camera through a broadband modem

Ekran System Help File

Zeenov Agora High Level Architecture

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip

Installing Remote Desktop Connection

District of Columbia Courts Attachment 1 Video Conference Bridge Infrastructure Equipment Performance Specification

NetSupport Manager v11

ivms-4500 (Android Tablet) Mobile Client Software User Manual (V3.0)

Windows VPN and Epic Installation Instructions

How To Use Tsplashbox On A Pc Or Mac Or Mac (For A Pc) With A Windows 7 Computer (For Mac) Or Mac) With Tsplatro (For Pc) Or Ipad (For Windows) With An

CRESTRON-APP-ANDROID Control App for Android

Web Conferencing Version 8.3 Troubleshooting Guide

SysPatrol - Server Security Monitor

Server Installation, Administration and Integration Guide

VNC User Guide. Version 5.3. December 2015

Enterprise Manager. Version 6.2. Administrator s Guide

Lab 0 (Setting up your Development Environment) Week 1

LogMeIn Rescue Architecture

Product Review ControlUp

LifeSize Video Center Administrator Guide March 2011

RSA SecurID Ready Implementation Guide

LogMeIn Backup. Getting Started Guide

2X Cloud Portal v10.5

How to Configure Terminal Services for Pro-Watch in Remote Administration Mode (Windows 2000)

XenApp/Citrix Program Neighborhood Installation

TurboMeeting User Manual

Google Cloud Print Administrator Configuration Guide

Lindenbaum Web Conference

Q-Cam Professional V 1.1 User Manual

Frequently Asked Questions

Windows 7 Hula POS Server Installation Guide

Transcription:

PAGE 1/ BY KIM MADSEN starter expert Delphi PROLOGUE kbmmw Enterprise Edition have long included components that makes it possible to create a remote desktop server, client, proxy and service, and a set of accompanying demo applications. The remote desktop tool is similar in functionality to what you can see in TeamViewer or LogmeIn or GotoMyPC etc. and thus allow you to remote control a PC from another PC, as if you were sitting in front of it. In the upcoming kbmmw Enterprise Edition v..8, an updated version of the Remote Desktop framework is included, which fixes a number of bugs, but also introduces some new nice features and vast performance improvements. Actually one of the focus areas on the new version of the framework has been to be able to play full HD video on the remote computer and see it in almost realtime in close to full speed on the local computer. There has always been a challenge to combine the requirements for high quality screen look (which is important when you use the remote PC for working with text or graphics), while maintaining a high FPS (Frames per second) in full screen full HD videos, as there are typically a lot of changes on screen that needs to be handled and moved to the viewer. Anyway, that has been made possible now. The server (to be run on the computer you want to remote) looks like this when you start it: And the client (that you run when you want to view a remote computer) looks like this when you start it: As you can see its clearly branded as a ComponentsDevelopers tool, and it has a number of features enabled and others disabled. When you click the More information button you will be greeted with this dialog: CODEGEAR EDITION The demo projects for the Remote Desktop framework are also being delivered precompiled as the free to use kbmmw Remote Desktop CodeGear Edition, which is now to be released as v5. You can download it from your prvivate dwoenloadpage after logging in at http://www.blaisepascal.eu/loginnew.php Fortunately, if you have kbmmw Enterprise Edition it's very easy to rebrand CodeGear Edition to something that match for example your company, if you want to use it internally for your own users. Please notice that the license prohibits you to create competing products with the kbmmw Remote Desktop facilities, so you can't, without entering an agreement about it with ComponentsDevelopers, simply rebrand the product, and sell it on to someone. You can rebrand it and give it to your own users if you want to. Another alternative is that you can compile in the remote desktop features you need, into your own application, using the demo as a sample of how to code with the remote desktop classes. Issue Nr 2015 BLAISE PASCAL MAGAZINE 33

REBRANDING REMOTEDESKTOPCLIENT Let's look at what can be rebranded out of the box without having to do any code changes. When the RemoteDesktopClient.exe is being compiled, it is getting its branding resources from A logo bitmap, an icon file, a simple resource file that points to the bitmap and icon, and finally an include file, that defines various options. The logo file must be a 2 bit BMP file with the size of 29 pixels x 92 pixels. The icon file will typically be a 32 bit ICO file with a size of 32 pixels x 32 pixels, but other sizes are also accepted. The resource file must be named RemoteDesktopClientBranding.rc, and must contain two lines: BRANDIMAGE BITMAP CDLogo.BMP BRANDICON ICON RemoteDesktopClient.ico As you can see, all it does is to refer to the logo file and the icon file. So far so good. Now let's look at the last file. It's a Delphi.inc file which must be named RemoteDesktopClientSettings.inc. It contains a longish list of options, descriptive info and security keys. PAGE 2/ const KBMMW_RD_CLIENT_DEFAULT_NODEID:string = 'DEMO'; // SHA256 hash for text DEMO (uppercase) // Use any SHA256 calculator. // Example: http://hash.onlineconvert.com/sha256generator // The password will be required to enter, //if KBMMW_RD_CLIENT_REQUIRE_PASSWORD // is defined. KBMMW_RD_CLIENT_APPLICATION_PASSWORD_HASH: array[0..31] of byte = ( $f,$f0,$06,$ca,$6b,$88,$e7,$52, $f0,$8c,$b7,$88,$17,$1,$50,$5c, $eb,$3d,$20,$79,$ee,$a,$32,$ac, $fd,$a8,$e1,$58,$e0,$d1,$d8,$2e ); KBMMW_RD_CLIENT_APPLICATION_TITLE:string = 'kbmmw Remote Desktop Client v5.0'; KBMMW_RD_CLIENT_CAPTION:string = 'kbmmw Remote Desktop Client v5.0'; KBMMW_RD_CLIENT_ABOUT:string = 'The RemoteDesktop suite is a demonstration of'+ ' kbmmw Enterprise Edition capabilities. +#10#13#10#13 +'The RemoteDesktop executables can be shared freely. +#10#13 +'The source can only be obtained as part of a kbmmw Enterprise Edition license, +'and may not be shared with any 3rdparty or used to create 3rdparty developer '+ ' libraries or products competing with ComponentsDevelopers products.' +#10#13#10#13 +'Visit www.componentsdevelopers.com for more information.'; // Define this to use simple form {.$DEFINE KBMMW_RD_CLIENT_SIMPLE} // Define this to use simple settings {.$DEFINE KBMMW_RD_CLIENT_SIMPLE_SETTINGS} {.$DEFINE KBMMW_RD_CLIENT_SIMPLEST_SETTINGS} // Define this to require password to run {.$DEFINE KBMMW_RD_CLIENT_REQUIRE_PASSWORD} // Define this to support chat features {$DEFINE KBMMW_RD_CLIENT_SUPPORT_CHAT} // Define this to support filetransfer features {$DEFINE KBMMW_RD_CLIENT_SUPPORT_FILETRANSFER} // Define this to support remote windows features {$DEFINE KBMMW_RD_CLIENT_SUPPORT_REMOTEWINDOWS} // Define this to support sending CTRL/ALT/DELETE {.$DEFINE KBMMW_RD_CLIENT_SUPPORT_CTRLALTDEL} // Define this to support sending desktop lock {.$DEFINE KBMMW_RD_CLIENT_SUPPORT_LOCK_DESKTOP} The first section contains a number of options that can be enabled or disabled. To enable a setting, change the {.$DEFINE } to {$DEFINE } (remove the dot). The settings are KBMMW_RD_CLIENT_SIMPLE If that is defined, the client (the viewer) will have a simple logon screen. There will not be any options for specifying the Node ID (name) of the host. The name will have to be predefined in the inc file. That also means that this viewer app, can only connect to one well known server name. // Define this to use encryption (AES/SHA256) {$DEFINE KBMMW_RD_CLIENT_USE_ENCRYPTION} 3 Issue Nr 2015 BLAISE PASCAL MAGAZINE

See KBMMW_RD_CLIENT_DEFAULT_NODEID. KBMMW_RD_CLIENT_SIMPLE_SETTINGS If that is defined, the client will only see a number of simple options when remoting a server. Basically the client will not be allowed to change capture mode (GDI, DX9 or DX11), change the priority with which the server application runs, enable or disable presentation of update regions, or to view the frame counter. For most end users, it makes sense to have this option set. KBMMW_RD_CLIENT_SIMPLEST_SETTINGS If that is defined, the user of the viewer will also not be able to change compression mode, view mode (color quality of pixels), zoom and scaling, change of aspect radio, change of screen update intervals, change of key frame settings. Some users may want to be able to play with these settings, so it's up to you if to disable this option. KBMMW_RD_CLIENT_REQUIRE_PASSWORD If defined, it require the user to type in a password before being able to run the RemoteDestopClient application. This way you can prevent unauthorized use of the client application if you have that requirement. Look at KBMMW_RD_CLIENT_APPLICATION_PASSWORD_HAS H for more info. DEFINE KBMMW_RD_CLIENT_SUPPORT_CHAT If defined the viewer supports opening a text chat window to chat with the user at the remote computer. KBMMW_RD_CLIENT_SUPPORT_FILETRANSFER If defined, the viewer includes file manager support for the remote computer, and you can send, receive and execute files on the remote computer. It may or may not be wise to include this option for ordinary users, unless they really need to be able to send or receive files. KBMMW_RD_CLIENT_SUPPORT_REMOTEWINDOWS If defined, the client (viewer) can see a list of all live windows on the remote computer, and optionally kill or focus them via the list. It may not be wise to include this option for ordinary users. KBMMW_RD_CLIENT_SUPPORT_CTRLALTDEL When defined, the client is able to send Ctrl/Alt/Delete (3 key combo) to the remote computer and thus activate its secure desktop. It's wise to disable this option, unless you have installed the Remote Desktop service (which is also included in the package) on the remote computer. If you run the remote desktop server directly and manually without this service, then the client/viewer will loose access to the computer while the secure desktop is shown. PAGE 3/ KBMMW_RD_CLIENT_USE_ENCRYPTION When defined, all communication between the client/viewer and server on the remote computer is strongly encrypted using SHA256 and AES. It is recommended to have this enabled. KBMMW_RD_CLIENT_DEFAULT_NODEID This is a constant string, which can be set to the default node ID of the server to remote. Its required if you have defined KBMMW_RD_CLIENT_SIMPLE. KBMMW_RD_CLIENT_APPLICATION_PASSWORD _HASH This is an array of bytes which contains a 32 byte SHA256 hash of a password the user has to key in before being allowed to use the client/viewer. You can for example use http://hash.onlineconvert.com/sha256generator to generate a usable SHA256 hash for you and copy it to this constant array. A valid hash must be given if you have defined KBMMW_RD_CLIENT_REQUIRE_PASSWORD. KBMMW_RD_CLIENT_APPLICATION_TITLE This Is a constant string which will be shown whenever the application is being identified in for example the task manager. KBMMW_RD_CLIENT_CAPTION This is a constant string which will be shown at the top of all windows in the client/viewer application. KBMMW_RD_CLIENT_ABOUT This is also a constant string, which contains whatever you want to have shown in the dialog shown when pressing More information. When you have defined the settings you want, you simply rebuild the RemoteDesktopClient project. The generated RemoteDeskotpClient.exe file will have been rebranded with your branding. REBRANDING REMOTEDESKTOPSERVER Similarly to the client, the server also uses files. One logo image with the same size as the client logo (29 pixels x 92 pixels x 2 bit BMP). One icon file with same dimensions requirements as the client icon. One resource file that must be named RemoteDesktopServerBranding.rc KBMMW_RD_CLIENT_SUPPORT_LOCK_DESKTOP When defined it allows sending a desktop Lock request to the remote computer. See above why this prevents the viewer to continue access on the remote computer unless the Remote Desktop service is installed. The resource file is identical in structure to the clients resource file: BRANDIMAGE BITMAP CDLogo.BMP BRANDICON ICON Issue Nr 2015 BLAISE PASCAL MAGAZINE 35

The settings file is different: // Define this to use simple form {.$DEFINE KBMMW_RD_SERVER_SIMPLE} // Define this to require typing in a password {$DEFINE KBMMW_RD_SERVER_REQUIRE_PASSWORD} // Define this to support annotation/chat features {$DEFINE KBMMW_RD_SERVER_SUPPORT_ANNOTATE} // Define this to blink SHARING information {$DEFINE KBMMW_RD_SERVER_BLINK_SHARING} // Define this to use encryption (AES/SHA256) {$DEFINE KBMMW_RD_SERVER_USE_ENCRYPTION} const KBMMW_RD_SERVER_DEFAULT_NODEID:string KBMMW_RD_SERVER_DEFAULT_PORT:integer KBMMW_RD_SERVER_USE_ENCRYPTION If defined the server will use strong encryption via SHA256 and AES. Its recommended to have this setting. KBMMW_RD_SERVER_DEFAULT_NODEID It's a constant string which defines the default name (Node ID) of the server. It must match what the client is going to use. KBMMW_RD_SERVER_DEFAULT_PORT The default TCP/IP port number the server is listening on when its ready to remote, and a proxy server is not used. KBMMW_RD_SERVER_APPLICATION_TITLE This Is a constant string which will be shown whenever the application is being identified in for example the task manager. = 'DEMO'; = 500; KBMMW_RD_SERVER_APPLICATION_TITLE:string = 'kbmmw Remote Desktop Server v5.0'; KBMMW_RD_SERVER_CAPTION:string = 'kbmmw Remote Desktop Server v5.0'; KBMMW_RD_SERVER_ABOUT:string = 'The RemoteDesktop suite is a demonstration of kbmmw + ' Enterprise Edition capabilities.'+#10#13#10#13 + 'The RemoteDesktop executables can be shared freely.'+#10#13 + 'The source can only be obtained as part of a kbmmw Enterprise + ' Edition license, and may not be shared with any 3rdparty or used + ' to create 3rdparty developer libraries or products competing with + ' ComponentsDevelopers products.'+#10#13#10#13 + 'Visit www.componentsdevelopers.com for more information.'; KBMMW_RD_SERVER_BAD_PERFORMANCE_TRESHOLD:integer = 500; KBMMW_RD_SERVER_SIMPLE If defined, then a simple startup screen is shown, where it's not possible to specify the servers name (Node ID), the servers listening port, or to set the hostname/ip (InternetProtocol) address of an optional Proxy server. The proxy server is a centrally placed small application which both servers and clients can connect to. This way one does not have to open up any inbound ports in firewalls on the machines that the remote desktop server is running on. KBMMW_RD_SERVER_REQUIRE_PASSWORD If defined, the server requires that a password is entered before starting the server. The password will later be required to be entered by any client/viewer that is to remote the computer. KBMMW_RD_SERVER_SUPPORT_ANNOTATE If defined, then the server supports annotation and chat features. KBMMW_RD_SERVER_BLINK_SHARING If defined the server will indicate that its open for remoting by blinking a Sharing text in the upper left corner of the screen. 36 PAGE / KBMMW_RD_SERVER_CAPTION This is a constant string which will be shown at the top of all windows in the server application. KBMMW_RD_SERVER_ABOUT This is a constant string, which contains whatever you want to have shown in the dialog shown when pressing More information. KBMMW_RD_SERVER_BAD_PERFORMANCE _TRESHOLD This is a constant integer value that defines how long time (in milliseconds) it's accepted to take, for obtaining a screenshot via GDI (Graphics Device Interface). When the server starts up, it tries to measure if the server hardware is fast enough to make the experience reasonably for both the viewer and any local users on the remote machine. If it fails, its typically due to a dodgy or old graphics card, and its recommended to disable hardware acceleration on that card, as it impairs performance. For more modern cards, it's not an issue. After setting up the settings and providing the bitmaps and icons, compile the RemoteDesktopServer project, and you have a rebranded remote desktop server. EPILOGUE As kbmmw is a modular framework, one can choose only to use the remote desktop features, its logging capabilities, its XML capabilities, its JSON capabilities, its serialization capabilities, its application server capabilities, its database capabilities, its stream storage capabilities, its memory table or its async messaging capabilities etc without having to use all other parts of the kbmmw framework. But obviously, you will get the best of the best if you take the plunge and choose to take advantage of all the kbmmw features you need in your applications as all parts are designed to work in perfect harmony with each other. Kim Madsen/CD Issue Nr 2015 BLAISE PASCAL MAGAZINE

Now faster than ever! Improved publish/subscribe message queues Improved XML/JSON marshalling support Delphi/C++Builder/RAD Studio XE8 Native high performance 100% developer defined application server with support for loadbalancing and failover Native high performance JSON and XML (DOM and SAX) for easy integration with external systems Native support for RTTI assisted object marshalling to and from XML/JSON, now also with new fullfeatured XML schema (XSD) import High speed, unified database access (35+ supported database APIs) with connection pooling, metadata and data caching on all tiers Multi head access to the application server, via AJAX, native binary, Publish/Subscribe, SOAP, XML, RTMP from web browsers, embedded devices, linked application servers, PCs, mobile devices, Java systems and many more clients Full FastCGI hosting support. Host PHP/Ruby /Perl/Python applications in kbmmw! KBMMW V..80 AMQP support Supports Delphi/C++Builder/RAD Studio 2009 to XE8 (32 bit, 6 bit and OSX where applicable). kbmmw for XE5 to XE8 includes full support for Android and IOS (client and server).! kbmmemtable is the fastest and most feature rich in memory table for Embarcadero products. Easily supports large datasets with millions of records Easy data streaming support Optional to use native SQL engine Supports nested transactions and undo Native and fast build in M/D, aggregation /grouping, range selection features Advanced indexing features for extreme performance Warning! kbmmemtable and kbmmw are highly addictive! Once used, and you are hooked for life! ( Advanced Message Queuing Protocol) Added AMQP 0.91 client side gateway support and sample. Updated StreamSec TLS transport plugin component (by StreamSec). Improved performance on Indy TCP/IP Client messaging transport for large number of inbound messages. EESB, SOA,MoM, EAI TOOLS FOR INTELLIGENT SOLUTIONS. kbmmw IS THE PREMIERE NTIER PRODUCT FOR DELPHI / C++BUILDER BDS DEVELOPMENT FRAMEWORK FOR WIN 32 / 6,.NET AND LINUX WITH CLIENTS RESIDING ON WIN32 / 6,.NET, LINUX, UNIX MAINFRAMES, MINIS, EMBEDDED DEVICES, SMART PHONES AND TABLETS.