31.10.2012 Views

User Manual PDF - Hot Virtual Keyboard

User Manual PDF - Hot Virtual Keyboard

User Manual PDF - Hot Virtual Keyboard

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

Copyright (c) by Comfort Software Group


I<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

Table of Contents<br />

Part I Introducing <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> 1<br />

Part II How to buy <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> 1<br />

Part III How to use <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> 2<br />

1 Using the ................................................................................................................................... on-screen keyboard<br />

2<br />

2 <strong>Keyboard</strong> ................................................................................................................................... Shortcuts Settings<br />

3<br />

3 Customizing ................................................................................................................................... the keyboard type<br />

4<br />

4 Text macros ................................................................................................................................... 6<br />

5 Editing ................................................................................................................................... shortcut icons<br />

7<br />

Part IV Action types 7<br />

1 <strong>Hot</strong> <strong>Virtual</strong> ................................................................................................................................... <strong>Keyboard</strong> actions<br />

7<br />

2 Replace ................................................................................................................................... key or shortcut<br />

8<br />

3 Play a keystroke ................................................................................................................................... macro<br />

8<br />

4 Paste text ................................................................................................................................... 9<br />

5 Run a program; ................................................................................................................................... open a document or a folder<br />

9<br />

6 Open ................................................................................................................................... one or several Internet resources<br />

10<br />

7 Connect/Disconnect ................................................................................................................................... from a network<br />

10<br />

8 Audio ................................................................................................................................... control<br />

10<br />

9 Monitor ................................................................................................................................... control<br />

10<br />

10 Window ................................................................................................................................... control<br />

10<br />

11 Perform ................................................................................................................................... a system action<br />

11<br />

12 Change ................................................................................................................................... the language or case<br />

11<br />

13 Lock/Restart/Shutdown<br />

................................................................................................................................... 11<br />

14 Block ................................................................................................................................... key or shortcut<br />

11<br />

Part V Options 11<br />

1 Main Properties ................................................................................................................................... 12<br />

2 Themes ................................................................................................................................... 13<br />

Keys .......................................................................................................................................................... 13<br />

3 On-Screen ................................................................................................................................... <strong>Keyboard</strong><br />

13<br />

4 Zoom ................................................................................................................................... 14<br />

5 Typing ................................................................................................................................... aid<br />

15<br />

6 Gestures ................................................................................................................................... 15<br />

7 Floating ................................................................................................................................... Window for On-Screen <strong>Keyboard</strong><br />

16<br />

8 Word ................................................................................................................................... Autocomplete<br />

16<br />

9 Language ................................................................................................................................... Bar<br />

17<br />

10 Shortcut ................................................................................................................................... icons<br />

17<br />

Copyright (c) by Comfort Software Group


Contents<br />

11 Exceptions ................................................................................................................................... 18<br />

12 Advanced ................................................................................................................................... 18<br />

Part VI Development 18<br />

1 How to ................................................................................................................................... show, close, fade or move the on-screen keyboard<br />

18<br />

2 How to ................................................................................................................................... lock all settings<br />

24<br />

3 How to ................................................................................................................................... activate different keyboards<br />

24<br />

4 FAQ for ................................................................................................................................... developers<br />

25<br />

5 Command ................................................................................................................................... Line Parameters<br />

27<br />

Part VII Other issues 28<br />

1 FAQ - ................................................................................................................................... Frequently asked questions<br />

28<br />

2 License ................................................................................................................................... Agreement<br />

29<br />

Index 34<br />

Copyright (c) by Comfort Software Group<br />

II<br />

II


1<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

1 Introducing <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> makes previous-generation on-screen keyboards look ancient. Type faster with<br />

configurable mouse gestures, launch programs, browse the Internet, and run programmable macros with<br />

any of the 67 keyboards included with <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong>. The new virtual on-screen keyboard<br />

employs advanced typing techniques used in modern mobile phones and communicators, including word<br />

auto-complete allowing you to choose the right word with a single click after entering just one or two<br />

letters.<br />

<strong>User</strong>s of Tablet PC, UMPC, Panel PC, Car PC and similar touch-screen devices will find <strong>Hot</strong> <strong>Virtual</strong><br />

<strong>Keyboard</strong> indispensable. Use a mouse, touchpad or fingers for on-screen typing. With <strong>Hot</strong> <strong>Virtual</strong><br />

<strong>Keyboard</strong>, you can type faster and more conveniently than by using built-in Windows On-Screen<br />

<strong>Keyboard</strong>. Use gestures for quickly performing repeat operations such as shifting the case of the letters,<br />

specify applications to hide <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> from, and set your own hotkeys to launch programs or<br />

Web sites, run macros, and perform operations such as copy and paste.<br />

The new virtual onscreen keyboard replaces Windows built-in On-Screen <strong>Keyboard</strong> with a much more<br />

advanced alternative. It's just as useful and as compatible as the native application. Supporting all<br />

languages and all installed keyboard layouts, <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> is a truly international tool. Supplying<br />

over 60 pre-defined keyboard skins, the virtual on-screen keyboard allows you to create, customize and<br />

configure a unique new keyboard to your personal liking. Adjust colors and gamma, assign unique<br />

sounds to groups of keys, set shape of the keys and choose your own background.<br />

Using a virtual on-screen keyboard does not have to be a hassle. Try <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong>, and you'll<br />

never go back!<br />

2 How to buy <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> is distributed as Shareware. You are entitled to evaluate the software for 30 days<br />

without charge. After 30 days, if you decide to keep the software, you must register your copy with us<br />

for a nominal fee.<br />

For more information, please visit http://hot-virtual-keyboard.com/buy/<br />

Copyright (c) by Comfort Software Group


Copyright (c) by Comfort Software Group<br />

How to buy <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> 2<br />

After registration you will get:<br />

1. The Registration Key (by Email).<br />

2. Notifications of every Major Upgrade and the new registration code, free of charge.<br />

3. Life-of-product technical support.<br />

4. No time limit on usage and no annoying registration notice.<br />

Finally, by registering, you will enable us to improve our software and continue to develop high quality<br />

products in the future!<br />

What You Get After Purchasing and Registering <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

Registration of <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> entitles you to unlimited free updates of the software and email<br />

technical support. You will be notified of version updates and other important news by email. You can<br />

always download the latest release of <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> from the web site (or other authorized<br />

sources) on the Internet.<br />

You will then receive your registration code by email.<br />

For detailed information on how to purchase and register <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong>, please read the following<br />

topics carefully:<br />

License Agreement<br />

Order online<br />

3 How to use <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

Are you new to <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong>? Read Using the on-screen keyboard first!<br />

From this topic you can find out how to use virtual keyboard.<br />

Do you have any questions? Read FAQ first.<br />

If you have any problems with <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> please read Frequently Asked Questions.<br />

3.1 Using the on-screen keyboard<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> can be used for several purposes:<br />

You can use it to type with your mouse pointer as if with a regular keyboard. All features of the<br />

regular keyboard are supported (for instance, repeated keystrokes if you hold down a key).<br />

The keys on the on-screen keyboard show what characters will be actually typed in any<br />

language, which allows you to type text without a localized keyboard.<br />

The icons of shortcut keys used in Windows and the current application are displayed on the<br />

keys of the on-screen keyboard. When you move the mouse pointer over a key with an icon on<br />

it, you see a hint with the description of the shortcut purpose. It will help you find out and learn<br />

keyboard shortcuts, which will considerably speed up your work and make it easier.<br />

When you press keys on the real keyboard, your keystrokes are shown on the on-screen<br />

keyboard, which allows you to control the process of typing without having to move your eyes<br />

from the keyboard to the monitor and back.


3<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

You can force the on-screen keyboard to be shown or hidden if you press the corresponding keyboard<br />

shortcut (by default, Apps).<br />

See the On-Screen <strong>Keyboard</strong> section for the detailed description how to configure the appearance and<br />

behavior of the on-screen keyboard.<br />

Tips and tricks<br />

You can use a floating window for showing/hiding the on-screen keyboard.<br />

When a key on the on-screen keyboard is pressed using the right mouse button, upper case is<br />

used.<br />

When a key on the on-screen keyboard is pressed using the middle mouse button, the<br />

application emulates a key press in combination with Ctrl.<br />

You can manually create files with shortcut icons for the applications that you use in your<br />

everyday work. See how to do it in the Editing shortcut icons section.<br />

When using an on-screen keyboard with a touch screen, the arrow keys work as a D-pad.<br />

See Also<br />

How to install another language and keyboard layout<br />

3.2 <strong>Keyboard</strong> Shortcuts Settings<br />

A keyboard shortcut (or accelerator key, shortcut key, hot key, hotkey, key binding, key combo,<br />

etc.) is a combination of keys that you press simultaneously in order to perform a certain action.<br />

<strong>Keyboard</strong> shortcuts are added, deleted and edited in a special window.<br />

First step:<br />

Open the context menu with a right click on the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> icon in the systems tray and<br />

select the <strong>Keyboard</strong> Shortcuts Settings item.<br />

Next step: Specify the keyboard shortcut that will be used. There are two ways to do it:<br />

1. Switch to the Key combination field and press the necessary keyboard combination.<br />

2. Use the mouse pointer to select the keys that will be used in the combination on the on-screen<br />

keyboard.<br />

Next step: Use the Action field to select the type of the action that will be performed when you press<br />

the specified shortcut key.<br />

You can use the Active field to specify the display modes the specified action should work in. For<br />

instance, you can disable the Win keys and enable additional shortcut macros (see Play a keystroke<br />

macro) in the full-screen mode (when you start a computer game).<br />

Copyright (c) by Comfort Software Group


Copyright (c) by Comfort Software Group<br />

How to use <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> 4<br />

Last step: Specify advanced parameters for the selected action. See the list of all actions, their<br />

parameters and usage examples in the Action Types section.<br />

Tips and tricks<br />

When you specify a keyboard shortcut, you can use any keys and their combinations, including<br />

NumLock, CapsLock, Alt+Tab (except for Sleep, WakeUp, Power, F-Lock and Ctrl+Alt+Del).<br />

When you specify keyboard shortcuts, the left and right control keys (Shift, Ctrl, Alt or Win) are<br />

processed differently. If you want to use only right Shift, Ctrl, Alt or Win in a keyboard shortcut,<br />

press the right keys. If you want to use both right and left keys, press the left keys.<br />

To delete a previously specified keyboard shortcut, select the (None) item in the Action type<br />

field.<br />

To print the list of keyboard shortcuts, select the Print List item on the File menu.<br />

You can configure several files with keyboard shortcuts and switch between them when you<br />

need it (for instance, enable a separate set of keyboard shortcuts for particular applications).<br />

You can add a set of keyboard shortcuts from another file. To do it, select the Add set from file<br />

item on the File menu and select a file with a keyboard shortcut set.<br />

All active keyboard shortcuts are shown on the built-in on-screen keyboard. See the Using the<br />

on-screen keyboard section for more details about how to use the on-screen keyboard.<br />

To use one set of keyboard shortcuts in workgroups, save the file with this set of keyboard<br />

shortcuts to a network resource and configure it to be used on each workstation.<br />

3.3 Customizing the keyboard type<br />

You can customize the size of the on-screen keyboard and also the location, appearance and size of its<br />

keys.<br />

To edit the appearance of the keyboard, open the Options dialog box, select the On-Screen <strong>Keyboard</strong><br />

item and click the Edit keyboard type button. By default, the current keyboard type is opened. To edit<br />

another keyboard type, select the Open command on the File menu.<br />

While editing the keyboard, you can use two types of virtual keys:<br />

Square keys are used by default. Specify only two points for them – the upper-left corner and<br />

the lower-right corner. You can use the Width and Height fields while working with such keys.<br />

Keys consisting of lines can take any shape. In order to configure them, use the Points table<br />

to specify all points that should be joined by lines one by one. The last line is automatically<br />

drawn between the first and last points. If necessary, you can use lines to draw a circle or an<br />

oval. Look at how the Enter key is specified on the standard keyboard – actually it is one key,<br />

but it is displayed as two keys (the point [-1, -1] means that the points of one key end and the<br />

points of the next key start).


5<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

All key parameters can be specified in the fields in the lower part of the window.<br />

You can use the following features while editing the keyboard visually:<br />

You can use the mouse pointer to select several keys at once if you hold down the Shift key.<br />

You can use the arrow keys to resize one or several selected keys if you hold down the Shift<br />

key.<br />

You can use the arrow keys to change the position of one or several selected keys if you hold<br />

down the Ctrl key.<br />

You can change key descriptions. New key descriptions will be displayed on keys instead of<br />

standard descriptions or key characters. For instance, you can assign a "Customers"<br />

description to the F2 key.<br />

Assigning an image to any key of the on-screen keyboard:<br />

Picture (Normal, <strong>Hot</strong>, Selected) – You can assign an image to every key state. The same image can<br />

be used for all key states.<br />

Set borders – You can set borders for the picture on the key. These borders are fixed when you resize<br />

the picture.<br />

Font Color (Normal, <strong>Hot</strong>, Selected) – You can specify the font to be used for each key state. Font<br />

colors can be set even if no images were assigned to keys in the previous fields. If you decide to leave<br />

the default setting, the program will use color values from the theme settings.<br />

Transparent – Set Transparent to True to allow the key behind the image to show through the<br />

background of the image. Set Transparent to False to make the background of the image opaque. Note:<br />

The Transparent property works only for images in the BMP format.<br />

Show as background – If this option is enabled, key labels and hotkey icons will be rendered on top of<br />

the key image. If this option is disabled, labels and icons will not be shown on the key.<br />

Draw a border around a key – Specifies whether a border should be drawn around the key. This<br />

option comes in handy of the image completely replaces the default style of the key. See the<br />

SkinMulticolor keyboard for example.<br />

Copyright (c) by Comfort Software Group


Copyright (c) by Comfort Software Group<br />

How to use <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> 6<br />

Resize with a key – when this option is enabled, the image is scaled when the key size changes.<br />

Fit width, Fit height – when this option is enabled, the width and height of the image always equal the<br />

width and height of the key it was assigned to.<br />

Tips and tricks<br />

3.4 Text macros<br />

You can use the image or photo of a keyboard to edit a new on-screen keyboard according to it.<br />

To do it, select the Add Background command on the Edit menu and open the necessary<br />

image file. After you configure the keyboard, you can remove the image by selecting the Clear<br />

Background command on the Edit menu.<br />

It is more convenient to create a new keyboard if you take an existing keyboard as a basis. To<br />

do it, select the keyboard that looks mostly like yours and save it under a different name by<br />

selecting the Save As command on the File menu.<br />

Clicking the right mouse button within the on-screen keyboard while editing it will add another<br />

point with the cursor coordinates to the currently edited key.<br />

If you configure complicated keys, it is sometimes more convenient to use a txt file containing<br />

the entire information about the keyboard. <strong>Keyboard</strong> files are stored in the <strong>Keyboard</strong>s subfolder.<br />

To delete an existing keyboard type, delete the file with its description from the <strong>Keyboard</strong>s<br />

subfolder.<br />

All changed keyboard txt files saves in folder Application Data. You can see full path in the<br />

caption of the window Edit keyboard type. For example: C:\Documents and<br />

Settings\<strong>User</strong>Name\Application Data\ComfortSoftware\hvk\<strong>Keyboard</strong>s\. You can move files from<br />

this folder to the subfolder of the program.<br />

These types of macros are used when you configure the Paste Text action.<br />

Macro types:<br />

Insert the current date and/or time (the tag) – inserts date and time in<br />

the specified format (see the format list).<br />

Press keys (the tag) – keystrokes will be emulated inside the text (see the<br />

key identifier list). Use the '+' character to specify a keyboard combination. It is possible to use<br />

the code of a key in the hexadecimal format. To do it, use the '$' character (for instance, $20 –<br />

Space, $1B – Escape). Sample keyboard combinations:<br />

regedit – start the registry editor.<br />

Loginpassword - enter the login and password.<br />

Select random text from a list (the ... tag) – select random text<br />

from lists enclosed by the and tags. It is possible to embed these macros. Simple<br />

examples:<br />

12 – insert 1 or 2.<br />

hi12<br />

bye12<br />

– insert hi1, hi2, bye1 or bye2.<br />

Show popup menu (the ... tag) – select text from lists enclosed by the<br />

and tags. It is possible to embed these macros. Simple example:<br />

HiHello – insert Hi or Hello.<br />

Insert text from a file (the tag) – add text from filename into the specified<br />

position if filename exists.<br />

Insert the selected text (the tag) – insert the text that is currently selected in<br />

the active application.<br />

Insert the clipboard content (the tag) – add the current text content of the<br />

clipboard.<br />

Execute JavaScript function (the tag) - with this tag you can perform various


7<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

functions from your Java-scripts. For example:<br />

<br />

Common.js<br />

DoublingSlashes<br />

<br />

.<br />

You can specify the position of the text cursor after the text is pasted. Just type the '|' character (vertical<br />

slash) there.<br />

3.5 Editing shortcut icons<br />

Shortcut icons are displayed on the on-screen keyboard. A separate set of shortcut icons is displayed<br />

for each application.<br />

Since applications use different mechanisms for storing shortcut icons, it is impossible to detect them<br />

automatically. So <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> uses its own sets of shortcut icons for each application.<br />

To edit shortcut icons, open the Options dialog box, select the Shortcut icons item and click the Edit<br />

shortcut icons button.<br />

By default, the Windows icon file is edited. To edit another icon file, select the Open command on the<br />

File menu.<br />

Start the application you want to create icons for and select the name of the executable file in the File<br />

Name drop-down menu. The Main Window Class Name and Application Name fields are specified<br />

automatically after that.<br />

The File Name and Main Window Class Name fields are used to determine what application is active.<br />

You can specify both of the fields or only one of them.<br />

The Application Name field is used for information about the application. Specify your data in it (for<br />

instance, Very Popular Application by John Doe (john@doe.com)).<br />

To add a new icon, specify the keyboard shortcut in the <strong>Keyboard</strong> Shortcut field of select it on the onscreen<br />

keyboard.<br />

After that there are several methods to add the icon: load it from a file, capture it on the screen or paste<br />

it from the clipboard. If you capture an icon from the screen, fill all the area you do not need with the<br />

Fuchsia color and select it in the Transparent Color field. To see whether the icon is good, try<br />

selecting another style, for instance, black.<br />

Finally, you can specify the hint that will displayed when you move the mouse pointer over the key with<br />

the icon on the on-screen keyboard. It is possible to use only one language, preferably English.<br />

Tips and tricks<br />

4 Action types<br />

All files with sets of shortcut icons are stored in the Icons subfolder.<br />

Carefully study the existing action types to use the features of <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> more effectively.<br />

You can assign a separate sound to each action.<br />

4.1 <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> actions<br />

You can use this group of actions to configure shortcut keys for the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> features.<br />

Copyright (c) by Comfort Software Group


Close keyboard<br />

Close the on-screen keyboard window.<br />

Copyright (c) by Comfort Software Group<br />

Action types 8<br />

Show <strong>Keyboard</strong> Shortcuts Settings window<br />

This action opens the <strong>Keyboard</strong> Shortcuts Settings window. See the <strong>Keyboard</strong> Shortcuts Settings<br />

section.<br />

Show/Hide On-Screen <strong>Keyboard</strong><br />

This action shows or hides the on-screen keyboard. See the Using the on-screen keyboard section<br />

for more details about how to use the on-screen keyboard.<br />

Activate the next <strong>Keyboard</strong> type<br />

Displays the next keyboard from the list of keyboards. You can configure the list of keyboards by<br />

pressing button "Set the List of <strong>Keyboard</strong>s".<br />

Show Options<br />

The action opens window with program options.<br />

4.2 Replace key or shortcut<br />

If you configure replacing shortcuts, you can realize the following ideas:<br />

you can click a mouse button by pressing a key (for example, set key Ctrl as RightButton);<br />

turn your regular keyboard into a multimedia one (configure shortcut keys that will behave as<br />

those keys that are absent on your keyboard: SEARCH, FAVORITES, HOME, NEXT_TRACK,<br />

PREV_TRACK, STOP, PLAY_PAUSE and others);<br />

rearrange keys on the keyboard in any manner (rearrange keys on your grandmother's keyboard<br />

alphabetically and let her enjoy typing e-mail messages to you).<br />

4.3 Play a keystroke macro<br />

A keystroke macro is a sequence of keystrokes and their combinations. You have to only once specify<br />

what keys should be pressed and <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> will repeat these keystrokes as many times as<br />

you specify.<br />

You can use this type of actions to:<br />

Create keyboard shortcuts practically for any actions. One keyboard shortcuts will be enough<br />

now in those cases when you had to press several keys.<br />

Fill out forms.<br />

Enter the username and password.<br />

Quickly print a predefined number of document copies.<br />

And much more. If you often perform the same operation, think if you could automate it.<br />

Remember that practically any action can be performed without using the mouse.<br />

To start recording a macro, click the Record button.<br />

To stop recording it, press the Pause key or click the record icon in the system tray.<br />

During recording, all your keyboard actions are saved to the table that has several fields:<br />

Delay before the next action.<br />

Event type – whether the key is pressed down or released.<br />

Key code.<br />

The sign that the key is an extended one.<br />

You can edit a previously recoded macro or create a new macro without recording it. To do it, click the<br />

Edit button.


9<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

After the macro is recorded, you can specify advanced parameters how it is to be played:<br />

Play speed.<br />

Number of repetitions.<br />

The name of the process that should be activated before you start playing the macro. For<br />

example, you can make the window of Windows Media Player active before the macro is<br />

played. If Windows Media Player is not running at the moment, the macro will not be played.<br />

You can stop playing the macro at any moment. To do it, click the Pause or Esc key or click the<br />

playback icon in the system tray.<br />

4.4 Paste text<br />

You can use the Paste Text type to:<br />

Quickly paste frequently used text fragments: greetings, cliches, e-mail addresses, URLs,<br />

logins/passwords.<br />

Quickly fill out web forms and registration dialog boxes.<br />

Type special characters that cannot be typed with the regular keyboard.<br />

Tips and tricks<br />

Text is saved in the Unicode format so you can use any characters in it.<br />

It is possible to add various macros to the text. See how to use macros in the Text macros<br />

section.<br />

You can specify the position of the text cursor after the text is pasted. Just type the '|' character<br />

(vertical slash) there.<br />

4.5 Run a program; open a document or a folder<br />

You can use this type of actions to:<br />

Quickly start your favorite applications.<br />

Open frequently used folders and drives: "My Documents", CD drive.<br />

Open frequently used documents and network drives.<br />

Hide a file from the boss or children leaving access to it only via a keyboard shortcut.<br />

Clear the desktop from a lot of shortcuts because you can use the on-screen keyboard instead<br />

of it.<br />

Program, Folder or Document Name - You can specify one or several programs in a separate line.<br />

Also you can run a program with additional parameters. Example: "C:\Program Files\Internet<br />

Explorer\iexplore.exe" -nohome<br />

Start in folder - enter the start in folder for the program here. Please note that when you use the<br />

"Add..." button to find a program or a document which you want to open with this action, the start in<br />

folder field is filled automatically with the folder where the selected file is held.<br />

Select the Switch to the already launched program checkbox and you will no longer need to check<br />

whether this program is already running or not.<br />

Tips and tricks<br />

Select the Add to the Windows context menu checkbox in the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> options<br />

and you will be able to assign a shortcut key by right-clicking the shortcut of the program you<br />

are interested in and selecting the Assign <strong>Keyboard</strong> Shortcut item (see Main properties).<br />

Copyright (c) by Comfort Software Group


4.6 Open one or several Internet resources<br />

Copyright (c) by Comfort Software Group<br />

Action types 10<br />

You can use this type of actions to:<br />

Open one or several sites that you visit every day with a single keystroke: news, weather,<br />

forums, entertainment, etc.<br />

Quickly open the page of your favorite search engine: www.google.com, www.yahoo.com, etc.<br />

Create new messages with the specified address. To do it, specify a string like mailto:<br />

support@comfort-software.com in the Open URL field.<br />

Quickly open the page of your corporate server.<br />

4.7 Connect/Disconnect from a network<br />

This action type lets you open a GPRS or ADSL connection quickly.<br />

Once you've established the connection with the hotkey, you can press the same hotkey again to close<br />

the connection.<br />

Note: The connection must have already been defined in "Windows Networking".<br />

4.8 Audio control<br />

You can configure shortcut keys for controlling the sound volume of default device: turn it up, turn it<br />

down, disable it or enable it. A slider that you usually see on TV screens is displayed in the lower<br />

part of the screen whenever you perform any of these actions.<br />

Audio devices in Windows are those devices which you can use to play or record audio. This means that<br />

every time you listen to your favorite songs or talk on the microphone you are using audio devices. When<br />

you listen to music, or any sound that comes from your computer, you use the playback functionality to<br />

hear the sounds in the speakers. On the other hand, when talking about the recording functionality, the<br />

audio device makes it possible to record any sound you like, be it from your microphone (recording your<br />

voice) or from the computer (recording sounds produced by your playback device).<br />

You can use actions "Change the default playback device" and "Change the default recording<br />

device" to change the default device.<br />

4.9 Monitor control<br />

You can configure shortcut keys for controlling your display: monitor power on/off, start screen saver or<br />

open window Display Settings.<br />

4.10 Window control<br />

You can specify keyboard shortcuts for any of the following actions:<br />

Minimize the active window.<br />

Maximize/restore the active window.<br />

Close the active window or application.<br />

Hide the active window or application.<br />

Show the last hidden window.<br />

You can find the list of hidden windows in the context menu of the program. To show any of the hidden<br />

windows, select its name in the context menu.<br />

Use hidden windows to temporarily hide from the screen applications that must be running, but that you<br />

do not need so far or that should not be visible (for instance, computer games).<br />

Note: Some applications have a complex window structure and cannot be hidden because not the


11<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

window you see, but a separate service window is hidden from the screen.<br />

4.11 Perform a system action<br />

Open window "Safely Remove Hardware"<br />

Open Control Panel<br />

Open properties "Date and time"<br />

Open Internet Properties<br />

Map Network Drive<br />

Disconnect Network Drive<br />

Empty recycle bin<br />

4.12 Change the language or case<br />

This group of actions is used to change the language, layout or case of text.<br />

4.13 Lock/Restart/Shutdown<br />

Lock this computer<br />

Log Off<br />

Restart this computer<br />

Sleep<br />

Hibernate<br />

Shut Down this computer<br />

Show Shut Down Dialog<br />

4.14 Block key or shortcut<br />

5 Options<br />

You can block the Left Win, Right Win keys in computer games (in the full-screen mode).<br />

You can block keys they you would not like to be pressed: CapsLock, Insert, NumLock. At the<br />

same time, you can select the Enable Shift, Ctrl and Alt combinations checkbox to be able<br />

to use the features of the blocked keys:<br />

o Shift+CapsLock will be used instead of CapsLock.<br />

o Shift+NumLock will be used instead of NumLock.<br />

o Shift+Ins will paste text from the clipboard.<br />

You can block pressing any keyboard combinations: Ctrl+Shift, Alt+Tab, Alt+F4, etc.<br />

While developing <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong>, we tried to make the number of additional options as small as<br />

possible and left only those that are truly necessary.<br />

To open the Options dialog box, open the context menu with a right click on the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

icon in the system tray and select the Options item.<br />

Copyright (c) by Comfort Software Group


5.1 Main Properties<br />

Copyright (c) by Comfort Software Group<br />

Options 12<br />

The main properties are responsible for the interaction between <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> and Windows.<br />

Language – the language of the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> user interface.<br />

Run <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> at Windows startup – automatically launch <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> when the<br />

system is started.<br />

Show keyboard on logon screen – an ability to show the on-screen keyboard before logging into the<br />

system.<br />

Set high priority for <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> – use this parameter if some of the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

features are unstable.<br />

Hide the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> icon in the systems tray – don't show the icon in the system tray<br />

(next to the clock).<br />

Show the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> toolbar in the taskbar – activate the program toolbar with one button<br />

in the taskbar.<br />

Add to the Windows context menu – if you select this checkbox, the Assign <strong>Keyboard</strong> Shortcut<br />

item will be added to the Windows system context menu. You can use this item to assign shortcut keys<br />

for quick access to applications, documents and other files.


13<br />

5.2 Themes<br />

5.2.1 Keys<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

The theme can change a wide range of visual elements including a colors, styles of drawing, fonts, etc.<br />

Style – color scheme.<br />

Style of drawing – normal, gradient of tube gradient.<br />

Native style of the window – determines whether the current application use the native windows paint<br />

style.<br />

Common transparency – transparency of on-screen keyboard.<br />

Background picture – the file of the image or photo to be used in the background. To remove the<br />

background image, clear the file name.<br />

Font – the main font for visible window elements.<br />

Characters font – the font for actually typed characters on the on-screen keyboard.<br />

Show labels and icons in the center of the keys - this option comes in handy if you use only one<br />

input language.<br />

Show keyboard layout by default – the layout or language that is used to display key names in the<br />

upper-left corner.<br />

Show symbols accessible via Shift when Shift is not pressed and font is not large - if the size of<br />

the key and font allow this, all numerical keys will contain characters that are typed in combination with<br />

the Shift key.<br />

Show symbols accessible via Ctrl and Shift+Ctrl – displays the characters that become available<br />

when Ctrl or Ctrl+Shift keys are pressed. As a rule, such key combinations are not used for text entry.<br />

Color finger areas – highlight keys in order to learn touch typing. Keys are highlighted in a different<br />

color for each finger.<br />

Labels on system keys depend on the currently selected input language – change a text on keys:<br />

Backspace, Tab, Enter, Shift, Ctrl, Alt, AltGr, Pause, Esc, PgUp, PgDn, End, Home, Arrows, PrtScr,<br />

Ins, Del, Apps, Win, Caps Lock, Num Lock, Scroll Lock.<br />

Show the state of Caps Lock, Num Lock and Scroll Lock keys – display as pressed when a keys is<br />

locked.<br />

5.3 On-Screen <strong>Keyboard</strong><br />

The on-screen keyboard can be used as a keyboard shortcut reference. Specify the appearance<br />

parameters for the keyboard to be shown only when you need it.<br />

<strong>Keyboard</strong> type – select the keyboard type: the location, type and size of keys.<br />

Auto Hide – hide the keyboard after the time specified in the Disappearance delay field expires.<br />

Lock – prevent the keyboard from moving.<br />

Copyright (c) by Comfort Software Group


Copyright (c) by Comfort Software Group<br />

Options 14<br />

Disappearance delay (msec) – the delay between the last time a key is pressed and the moment the<br />

on-screen keyboard disappears.<br />

Show On-Screen <strong>Keyboard</strong> next to the text entry area when possible. Some applications draw<br />

the text cursor in their own way and do not provide information about its position: Firefox, OpenOffice,<br />

CorelDRAW etc. In this case the keyboard will be shown in the bottom of screen.<br />

Show On-Screen <strong>Keyboard</strong> when the text cursor is visible The on-screen keyboard appears when<br />

the cursor is placed inside a text field. Some applications draw the text cursor in their own way and do<br />

not provide information about its state. In this case you can call the keyboard by pressing a hotkey or<br />

click the keyboard icon. Also you can install Browser Extension.<br />

Extensions You can install browser extension for the on-screen keyboard to appear when the cursor<br />

is placed inside a text field. The process is simple: the extension add keyboard-related information to<br />

the browser caption and the program monitors it for changes.<br />

When I enter a password don't show which keys are tapped don't show pressed keys when a<br />

password field is focused.<br />

Docking – you can dock the keyboard at the top or bottom of the display. When you dock the<br />

keyboard, the desktop workspace will be reduced in size. Other application windows and desktop icons<br />

will be rearranged to adjust to change.<br />

Advanced<br />

Move the keyboard to a screen border when an on-screen keyboard is shown, it is automatically<br />

moved to the specified screen border even if it had been moved elsewhere.<br />

Animate the launch of the on-screen keyboard when the keyboard is started, it appears on the<br />

screen by sliding up or down from under the specified screen border. When the keyboard is closed, it<br />

slides under the specified border.<br />

Type characters when keys are released if you enable this option, characters will be typed when<br />

you raise your finger from the surface of a touch screen or release the mouse button. In the regular<br />

typing mode, key values are inserted as you type, just like with a regular keyboard. Especially useful in<br />

combination with the following setting.<br />

Show a tip over a pressed character key if you press a key, a small window with an enlarged<br />

version of the corresponding character will pop up. Especially useful in combination with the previous<br />

setting.<br />

Show key characters in the UPPER CASE when this option is enabled, key characters are<br />

displayed in the upper case regardless of the state of the Shift and CapsLock keys.<br />

5.4 Zoom<br />

Mouse pointer - there are three types of pointer: Standard (Arrow), Hand and Invisible.<br />

You can zoom in to get a close-up view of your keyboard or zoom out to see more of the desktop (an<br />

ability to change the size of the keyboard without the need to edit it).<br />

Fit width - scale the on-screen keyboard to match the screen width. It’s a useful feature for frequent<br />

screen rotation in the portrait and landscape modes.<br />

Width - the keyboard width scaling ratio. You can change the size of the keyboard window using a


15<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

regular method – by dragging the edge of the window with your mouse.<br />

Fit height - scale the on-screen keyboard to match the screen height. You can select this option in<br />

combination with the “Fit width" option to fit the keyboard to the screen.<br />

Height - the keyboard height scaling ratio.<br />

Lock aspect ratio - locks the width/height scaling ratio, i.e. the width is scaled in the same proportion<br />

as the height.<br />

5.5 Typing aid<br />

Additional options for comfortable typing.<br />

Enable key repeat – generate repeated key presses.<br />

Repeat delay (msec) – amount of time that elapses before a character repeats when you hold down a<br />

key.<br />

Repeat rate (characters per second) – the speed at which a character repeats when you hold down a<br />

key.<br />

Hold down key until Shift, Ctrl, Alt and Win is pressed – when a key is pressed for the first time, it<br />

stays down until pressed again.<br />

Enable AutoClick – when the cursor is placed over a key, the key will be automatically pressed with<br />

the specified interval between key presses. This is a useful feature for disabled people.<br />

AutoClick delay (msec) – time that passes before a mouse click is done at your mouse pointer's<br />

current position.<br />

Set capital after the specified character – Shift is pressed automatically after one of the specified<br />

characters is entered.<br />

Delete a space before specified characters – if one of the characters on the list is entered and there<br />

is one or more spaces preceding it, they will be removed.<br />

Add a space after specified characters – if one of the characters on the list is entered, a space will<br />

be added after it.<br />

Add a space before specified characters – if one of the characters on the list is entered and there is<br />

no space before it, it will be added.<br />

"." Shortcut – Double taping the space bar will insert a period followed by a space.<br />

5.6 Gestures<br />

Gestures function support (fast entering of capital letters, spaces, etc.) with selectable sensitivity:<br />

If you enable this option, characters will be typed when you raise your finger from the surface of a touch<br />

screen or release the mouse button. In the regular typing mode, key values are inserted as you type,<br />

just like with a regular keyboard.<br />

Copyright (c) by Comfort Software Group


Note: This function doesn't work with the multi-touch option in Windows 7.<br />

5.7 Floating Window for On-Screen <strong>Keyboard</strong><br />

There are two different windows that are used for bringing up the on-screen keyboard.<br />

Copyright (c) by Comfort Software Group<br />

Options 16<br />

The first window can be placed anywhere on the screen and used for showing and hiding the on-screen<br />

keyboard.<br />

The second window is shown as an icon next to the text cursor. If there is no text cursor on the screen,<br />

this icon is not shown.<br />

You can change the size of both windows, adjust their transparency and also make them disappear if<br />

the keyboard is displayed on the screen.<br />

Auto Hide - hide when the on-screen keyboard is visible and show when the keyboard is hidden.<br />

Show the floating icon for the on-screen keyboard next to the text cursor – the icon appears<br />

automatically when you tap the location on the screen where you want to insert text. To open the onscreen<br />

keyboard tap the floating icon.<br />

Some applications draw the text cursor in their own way and do not provide information about its<br />

position: Firefox, Google Chrome, OpenOffice, CorelDRAW, etc. In this case the floating icon will be<br />

hidden.<br />

5.8 Word Autocomplete<br />

As you type each word, the program can provide you with a list of known words that begin with those<br />

characters.<br />

How Word Auto complete works<br />

Once you type enough valid characters to equal or exceed the Minimum Character Threshold, the word<br />

list is searched for all known words beginning with those characters. If any exist, the Word<br />

Autocomplete window will be displayed. If no word in the word list begins with the characters you've<br />

typed, no window will be displayed.<br />

Installing Dictionaries<br />

In order to use the Word Autocomplete feature, you will need files with extension dic (for example,<br />

"words.dic") in the folder "Data directory".<br />

Minimum character threshold – the number of characters of a word to type before the Word<br />

Autocomplete window is displayed.<br />

Number of displayed words – the number of displayed words in the Word Autocomplete window.<br />

Appearance delay (msec) - the delay between the moment the valid characters are typed and the<br />

moment the Word Autocomplete window appears.<br />

Add space after completed word - automatically types a space character after you've used word<br />

completion. This can be very handy in that you don't need to click on the Space key. You can right-click<br />

on the word when you don't need to add a space character.<br />

Show as a set of buttons next to the on-screen keyboard – if the on-screen is visible, display words<br />

as a set of buttons; otherwise as a vertical list.<br />

Auto Hide – hide the Word Autocomplete window if no words found.


17<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

Show, Hide and Move with the On-Screen <strong>Keyboard</strong> – show like a part of the on-screen keyboard.<br />

Lock – prevent the Word Autocomplete window from moving.<br />

Show numbers – display shortcuts in the left side of the Word Autocomplete window. You can paste a<br />

word with a numeric key.<br />

Do not show words with 1 character remaining – do not show almost finished words.<br />

Dictionaries<br />

Learn new words – save commonly used words in the file "custom.dic". Note: Words entered by users<br />

are recorded in UTF-8 format.<br />

Confirmation of the addition of words to the custom dictionary – show window with confirmation of<br />

adding new word to the file "custom.dic".<br />

Dictionaries - the dictionaries are ASCII files that may be edited directly.<br />

Read/Refresh word list - use this button after editing dictionary.<br />

Tips and tricks<br />

5.9 Language Bar<br />

You can remove the word directly from the autocompletion list by highlighting the unnecessary<br />

word and then pressing Delete key.<br />

Visible – show the language bar.<br />

Lock the Language bar – prevent the language bar from moving.<br />

Show, Hide and Move with the On-Screen <strong>Keyboard</strong> – show like a part of the on-screen keyboard.<br />

Kind of the Language bar – Language Flag, Language Flag with a Name, Vertical List of Flags,<br />

Horizontal List of Flags, List of Flags with Names, Custom.<br />

Show label – display label "Switch the input language or layout" next to the language flag for the<br />

custom view. The size of the flag depends on the size of the language bar: 16x16 or 32x32.<br />

Transparency of the Language bar – transparency for language bar when it's not active.<br />

Note: You can control the language bar settings by using context menu.<br />

5.10 Shortcut icons<br />

Application shortcut icons are shown on the on-screen keyboard and help to find the necessary<br />

shortcut.<br />

Copyright (c) by Comfort Software Group


Copyright (c) by Comfort Software Group<br />

Options 18<br />

Show Windows icons, Show active application icons, Show <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> icons – show<br />

the corresponding icons on the keyboard.<br />

Show hints – show the hints on the keyboard.<br />

Show information about the availability of application shortcuts – select this checkbox to see<br />

marks in the lower-left corners of keys on the on-screen keyboard about the availability of keyboard<br />

combinations with control keys:<br />

Green – with Ctrl.<br />

Yellow – with Ctrl+Shift.<br />

Blue – with Alt.<br />

Red – with Alt+Shift.<br />

5.11 Exceptions<br />

You can specify applications where you want <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> disabled.<br />

How it works<br />

Whenever any of the specified programs becomes active, <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> turns off, indicating it in<br />

the tray icon. <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> resumes operation once you switch to another program.<br />

5.12 Advanced<br />

Install Setup Wizard – start the initial configuration wizard. If you use it to configure keyboard<br />

shortcuts, all previously specified keyboard shortcuts will be preserved.<br />

Num Lock state – change the state of the NumLock key when <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> is started.<br />

Save to File – saves all program settings to INI-file.<br />

Load from File – loads all program settings from INI-file. You can load settings from INI-file with a<br />

command line parameter /RESTORE.<br />

6 Development<br />

How to show, close, fade or move the On-Screen <strong>Keyboard</strong><br />

How to restrict access<br />

How to activate different keyboards<br />

FAQ for developers<br />

Command Line Parameters<br />

6.1 How to show, close, fade or move the on-screen keyboard<br />

You can use Windows Messages to manipulate the on-screen keyboard.<br />

Like this:<br />

WM_CSKEYBOARD = WM_USER + 192;<br />

WM_CSKEYBOARDMOVE = WM_USER + 193;<br />

WM_CSKEYBOARDRESIZE = WM_USER + 197;<br />

// to show keyboard<br />

PostMessage(FindWindow('TFirstForm', 'hvkFirstForm'), WM_CSKEYBOARD, 1, 0);<br />

// to close keyboard


19<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

PostMessage(FindWindow('TFirstForm', 'hvkFirstForm'), WM_CSKEYBOARD, 2, 0);<br />

// to fade keyboard<br />

PostMessage(FindWindow('TFirstForm', 'hvkFirstForm'), WM_CSKEYBOARD, 3, 0);<br />

// to toggle (show/hide) keyboard<br />

PostMessage(FindWindow('TFirstForm', 'hvkFirstForm'), WM_CSKEYBOARD, 4, 0);<br />

// to move keyboard (Left, Top - new position)<br />

PostMessage(FindWindow('TFirstForm', 'hvkFirstForm'), WM_CSKEYBOARDMOVE, Left, Top);<br />

// to resize keyboard<br />

PostMessage(FindWindow('TFirstForm', 'hvkFirstForm'), WM_CSKEYBOARDRESIZE, Width, Height);<br />

Visual Basic Sample Code<br />

Private Const WM_CSKEYBOARD = WM_USER + 192<br />

Private Const WM_CSKEYBOARDMOVE = WM_USER + 193<br />

Private Const WM_CSKEYBOARDRESIZE = WM_USER + 197<br />

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, B<br />

'Code to show keyboard<br />

Dim hWnd As Long<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm")<br />

PostMessage hWnd, WM_CSKEYBOARD, 1, 0<br />

'Code to close keyboard<br />

Dim hWnd As Long<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm")<br />

PostMessage hWnd, WM_CSKEYBOARD, 2, 0<br />

'Code to move keyboard<br />

Dim hWnd As Long<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm")<br />

PostMessage hWnd, WM_CSKEYBOARDMOVE, 0, 0<br />

'Code to resize keyboard<br />

Dim hWnd As Long<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm")<br />

PostMessage hWnd, WM_CSKEYBOARDMOVE, Width, Height<br />

C# Sample Code<br />

using System;<br />

using System.Windows.Forms;<br />

using System.Runtime.InteropServices;<br />

public const Int32 WM_USER = 1024;<br />

public const Int32 WM_CSKEYBOARD = WM_USER + 192;<br />

public const Int32 WM_CSKEYBOARDMOVE = WM_USER + 193;<br />

public const Int32 WM_CSKEYBOARDRESIZE = WM_USER + 197;<br />

[DllImport("user32.dll", EntryPoint = "FindWindow")]<br />

private static extern Int32 FindWindow(string _ClassName, string _WindowName);<br />

[DllImport("<strong>User</strong>32.DLL")]<br />

public static extern Boolean PostMessage(Int32 hWnd, Int32 Msg, Int32 wParam, Int32 lParam);<br />

Int32 hWnd = FindWindow("TFirstForm", "hvkFirstForm");<br />

PostMessage(hWnd, WM_CSKEYBOARD, 1, 0 ); // Show<br />

PostMessage(hWnd, WM_CSKEYBOARD, 2, 0); // Hide<br />

PostMessage(hWnd, WM_CSKEYBOARDMOVE, 0, 0); // Move to 0, 0<br />

PostMessage(hWnd, WM_CSKEYBOARDRESIZE, 600, 300); // Resize to 600, 300<br />

Copyright (c) by Comfort Software Group


Visual Basic 2008 (VB.NET) Sample Code<br />

Const WM_CSKEYBOARD = &H400 + 192<br />

Const WM_CSKEYBOARDMOVE = &H400 + 193<br />

Const WM_CSKEYBOARDRESIZE = &H400 + 197<br />

Copyright (c) by Comfort Software Group<br />

Development 20<br />

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, B<br />

Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal<br />

'Open/show the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle<br />

Dim hWnd As Integer<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm")<br />

PostMessage(hWnd, WM_CSKEYBOARD, 1, 0)<br />

End Sub<br />

'Close the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle<br />

Dim hWnd As Integer<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm")<br />

PostMessage(hWnd, WM_CSKEYBOARD, 2, 0)<br />

End Sub<br />

'Move the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong>; Move it first then show it<br />

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle<br />

Dim hWnd As Integer<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm")<br />

PostMessage(hWnd, WM_CSKEYBOARDMOVE, 200, 200)<br />

PostMessage(hWnd, WM_CSKEYBOARD, 1, 0)<br />

End Sub<br />

'Toggle the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle<br />

Dim hWnd As Integer<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm")<br />

PostMessage(hWnd, WM_CSKEYBOARD, 4, 0)<br />

End Sub<br />

'Fade the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle<br />

Dim hWnd As Integer<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm")<br />

PostMessage(hWnd, WM_CSKEYBOARD, 3, 0)<br />

End Sub<br />

'Change the keyboard type and show it<br />

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle<br />

'Change the Registry entry for the required keyboard<br />

My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\ComfortSoftware\hvk", "Keyboar<br />

'Open the keyboard<br />

Dim hWnd As Integer<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm")<br />

PostMessage(hWnd, WM_CSKEYBOARD, 1, 0)<br />

End Sub<br />

'Change to another keyboard type and show it<br />

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handle<br />

'Change the Registry entry for the required keyboard<br />

My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\ComfortSoftware\hvk", "Keyboar<br />

'Open the keyboard<br />

Dim hWnd As Integer<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm")<br />

PostMessage(hWnd, WM_CSKEYBOARD, 1, 0)<br />

End Sub


21<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

C++ (CLR syntax) Sample Code<br />

using namespace System::Runtime::InteropServices;<br />

using namespace System::Security::Permissions;<br />

using namespace Microsoft::Win32;<br />

const System::UInt32 WM_USER = 1024;<br />

const System::UInt32 WM_CSKEYBOARD = WM_USER + 192;<br />

const System::UInt32 WM_CSKEYBOARDMOVE = WM_USER + 193;<br />

[DllImport("user32.dll")]<br />

extern IntPtr FindWindow(String^ lpClassName, String^ lpWindowName);<br />

[DllImport("user32.dll")]<br />

extern IntPtr PostMessage(System::IntPtr hWnd, System::UInt32 Msg, int wParam, int lParam);<br />

[assembly:RegistryPermissionAttribute(SecurityAction::RequestMinimum, All = "HKEY_CURRENT_US<br />

....blah blah blah you normal code...<br />

void button1_Click(System::Object^ sender, System::EventArgs^ e)<br />

{<br />

// Open/show the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

IntPtr hWnd;<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm");<br />

PostMessage(hWnd, WM_CSKEYBOARD, 1, 0);<br />

}<br />

void button2_Click(System::Object^ sender, System::EventArgs^ e)<br />

{<br />

// close the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

IntPtr hWnd;<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm");<br />

PostMessage(hWnd, WM_CSKEYBOARD, 2, 0);<br />

}<br />

void button3_Click(System::Object^ sender, System::EventArgs^ e)<br />

{<br />

//Move the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong>; Move it first then show it<br />

IntPtr hWnd;<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm");<br />

PostMessage(hWnd, WM_CSKEYBOARDMOVE, 200, 200);<br />

PostMessage(hWnd, WM_CSKEYBOARD, 1, 0);<br />

}<br />

void button4_Click(System::Object^ sender, System::EventArgs^ e)<br />

{<br />

//Toggle the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

IntPtr hWnd;<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm");<br />

PostMessage(hWnd, WM_CSKEYBOARD, 4, 0);<br />

}<br />

void button5_Click(System::Object^ sender, System::EventArgs^ e)<br />

{<br />

//Fade the <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

IntPtr hWnd;<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm");<br />

PostMessage(hWnd, WM_CSKEYBOARD, 3, 0);<br />

}<br />

void button6_Click(System::Object^ sender, System::EventArgs^ e)<br />

{<br />

//Change the keyboard type and show it<br />

System::Object ^kname="NumPad";<br />

//Change the Registry entry for the required keyboard<br />

RegistryKey ^key= Registry::Current<strong>User</strong>->OpenSubKey ( "Software\\ComfortSoftware\\hvk",t<br />

Copyright (c) by Comfort Software Group


}<br />

Copyright (c) by Comfort Software Group<br />

key->SetValue("<strong>Keyboard</strong>Name",kname);<br />

//Open the keyboard<br />

IntPtr hWnd;<br />

hWnd = FindWindow("TFirstForm", "hvkFirstForm");<br />

PostMessage(hWnd, WM_CSKEYBOARD, 1, 0);<br />

Development 22<br />

Java Sample Code<br />

/*<br />

* This file is heavily based on Jawin:


23<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

}<br />

}<br />

FuncPtr postMessage = null;<br />

postMessage = new FuncPtr(POST_MESSAGE.getDllName(), POST_MESSAGE.getFunctionName())<br />

NakedByteStream bs = new NakedByteStream();<br />

LittleEndianOutputStream leo = new LittleEndianOutputStream(bs);<br />

leo.writeInt(hWnd);<br />

leo.writeInt(WM_CSKEYBOARDMOVE);<br />

leo.writeInt(x);<br />

leo.writeInt(y);<br />

byte[] b = postMessage.invoke(POST_MESSAGE.getParameterDescription(), POST_MESSAGE.g<br />

ReturnFlags.CHECK_FALSE);<br />

LittleEndianInputStream leis = new LittleEndianInputStream(<br />

new ByteArrayInputStream(b));<br />

int l = leis.readInt();<br />

postMessage.close();<br />

return l;<br />

public int setVisible(boolean visible) throws COMException, IOException {<br />

int hWnd = getWindowHandle();<br />

}<br />

FuncPtr postMessage = null;<br />

postMessage = new FuncPtr(POST_MESSAGE.getDllName(), POST_MESSAGE.getFunctionName())<br />

NakedByteStream bs = new NakedByteStream();<br />

LittleEndianOutputStream leo = new LittleEndianOutputStream(bs);<br />

leo.writeInt(hWnd);<br />

leo.writeInt(WM_CSKEYBOARD);<br />

leo.writeInt(visible ? 1 : 2);<br />

leo.writeInt(0);<br />

byte[] b = postMessage.invoke(POST_MESSAGE.getParameterDescription(), POST_MESSAGE.g<br />

ReturnFlags.CHECK_FALSE);<br />

LittleEndianInputStream leis = new LittleEndianInputStream(<br />

new ByteArrayInputStream(b));<br />

int l = leis.readInt();<br />

postMessage.close();<br />

return l;<br />

public static void main(String[] args) throws Exception {<br />

try {<br />

ComfortSoftware<strong>Keyboard</strong> keyboard = ComfortSoftware<strong>Keyboard</strong>.getInstance();<br />

keyboard.setVisible(true);<br />

Thread.sleep(1000);<br />

keyboard.setVisible(false);<br />

Thread.sleep(1000);<br />

keyboard.setVisible(true);<br />

for (int i = 0; i < 100;i++) {<br />

keyboard.move(i, i);<br />

}<br />

} catch (COMException e) {<br />

} finally {<br />

}<br />

}<br />

class Call {<br />

private int stackSize;<br />

private String functionName;<br />

private String parameterDescription;<br />

private String dllName;<br />

public Call(String dllName, String functionName, String parameterDescription, int stackS<br />

Copyright (c) by Comfort Software Group


}<br />

Copyright (c) by Comfort Software Group<br />

Development 24<br />

this.stackSize = stackSize;<br />

this.functionName = functionName;<br />

this.parameterDescription = parameterDescription;<br />

this.dllName = dllName;<br />

}<br />

public int getStackSize() {return stackSize;}<br />

public String getFunctionName() {return functionName;}<br />

public String getParameterDescription() {return parameterDescription;}<br />

public String getDllName() {return dllName;}<br />

If you can't use Windows Messages then download and try these files:<br />

http://hot-virtual-keyboard.com/files/ShowKB.exe<br />

http://hot-virtual-keyboard.com/files/HideKB.exe<br />

http://hot-virtual-keyboard.com/files/ToggleKB.exe<br />

http://hot-virtual-keyboard.com/files/MoveTopKB.exe<br />

http://hot-virtual-keyboard.com/files/MoveBottomKB.exe<br />

http://hot-virtual-keyboard.com/files/MoveLeftKB.exe<br />

http://hot-virtual-keyboard.com/files/MoveRightKB.exe<br />

http://hot-virtual-keyboard.com/files/SetNameKB.exe<br />

If you are writing kiosk software using HTML, you can control the on-screen keyboard with<br />

special JavaScript functions.<br />

You can show, hide and move the keyboard using JavaScript. The process is simple: special JavaScript<br />

functions add keyboard-related information to the browser caption and the program monitors it for<br />

changes.<br />

Download the file with JavaScript functions and examples located at http://hot-virtual-keyboard.com/<br />

commander.html<br />

6.2 How to lock all settings<br />

Developers can lock all the settings so that the end user cannot change them.<br />

1. In the system registry, add the following DWORD parameter - AccessDenied=1 - to<br />

HKEY_CURRENT_USER\Software\ComfortSoftware\hvk<br />

2. Restart the program.<br />

Note: You can change parameter AccessDenied with files from the program installation directory:<br />

AccessAllowed.reg and<br />

AccessDenied.reg<br />

Note: When access is denied, you cannot close, move or zoom the on-screen keyboard! But if you set<br />

AccessDenied=2, you can close, move and zoom the on-screen keyboard.<br />

See Also<br />

Command-Line Switches<br />

6.3 How to activate different keyboards<br />

You can specify different types of on-screen keyboards to be displayed.<br />

Variant 1<br />

To do this, change (from your program) the <strong>Keyboard</strong>Name parameter in the registry at<br />

HKEY_CURRENT_USER\Software\ComfortSoftware\hvk.<br />

If the on-screen keyboard is visible then send Windows message PostMessage(FindWindow


25<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

('TFirstForm', 'hvkFirstForm'), WM_CSKEYBOARD, 1, 0) and the program will reload the keyboard.<br />

Variant 2<br />

Download this file: http://hot-virtual-keyboard.com/files/SetNameKB.exe<br />

Command format: SetNameKB.exe "keyboard name"<br />

Example: SetNameKB.exe Mini<br />

Variant 3<br />

char <strong>Keyboard</strong>Name[80];<br />

COPYDATASTRUCT MyCDS;<br />

<strong>Keyboard</strong>Name = "Standard";<br />

// Fill the COPYDATA structure<br />

MyCDS.dwData = 1; // function identifier<br />

MyCDS.cbData = sizeof(<strong>Keyboard</strong>Name); // size of data<br />

MyCDS.lpData = &<strong>Keyboard</strong>Name; // data structure<br />

// Call function, passing data in &MyCDS<br />

HWND hwDispatch = FindWindow( "TFirstForm", "hvkFirstForm" );<br />

if( hwDispatch != NULL )<br />

SendMessage( hwDispatch,<br />

WM_COPYDATA,<br />

(WPARAM)(HWND) NULL,<br />

(LPARAM) (LPVOID) &MyCDS );<br />

6.4 FAQ for developers<br />

What do I have to do to include an on-screen keyboard into my own installer?<br />

1) A set of files to be copied to end users’ computers:<br />

Lang – a folder with the program interface translated into other languages<br />

hvk.exe<br />

COptions.exe<br />

hvkH.dll<br />

<strong>Keyboard</strong>s – a folder with on-screen keyboards (one text file per keyboard)<br />

Skins – a catalog with skin images<br />

Background – if you use an image for the keyboard background<br />

Icons – if you use application shortcut icons<br />

Sound – if you use sounds<br />

hvkDeskBand.dll – if you use a toolbar in the taskbar<br />

*.dic – word autocomplete dictionaries. The folder to be used for storing dictionaries is specified in the<br />

Data directory field in the Dictionaries section of the program settings. For convenience, dictionary<br />

files can be moved to the program installation folder.<br />

2) If you use the option of showing the on-screen keyboard prior to the system login:<br />

Backup.ini – the pre-login settings file for the on-screen keyboard<br />

You will also need to copy the following four files to the system folder Windows\system32: runcosk.exe,<br />

CsCredentialLogon.dll, CsCredentialLogon64.dll, cskeyboardlogon.dll<br />

3) If you have special shortcuts configured, you will also need to copy the file with the settings of these<br />

shortcuts to the same folder as on the source computer. The full path to this file and its name can be<br />

found in the title of the <strong>Keyboard</strong> Shortcuts Settings window.<br />

4) To transfer the program settings, do the following:<br />

Save the settings to a separate file. To do that, click the Save to File button in the Advanced section<br />

of the settings window.<br />

Copyright (c) by Comfort Software Group


Copyright (c) by Comfort Software Group<br />

Development 26<br />

Once the files have been copied to the end user’s computer, start hvk.exe with the /RESTORE<br />

parameter.<br />

Command format: hvk.exe /RESTORE "file name"<br />

Example: hvk.exe /RESTORE "C:\Program Files\Settings.ini"<br />

How can I switch between several on-screen keyboards?<br />

To do that, add a separate key to each on-screen keyboard (in the Edit keyboard type window) and then<br />

assign the Activate the next keyboard type action to this key in the <strong>Keyboard</strong> Shortcuts Settings<br />

window. Once you’ve assigned a keyboard switch action to this key, you will see a button next to it that<br />

will allow you to configure the list of switchable keyboards.<br />

How do I create a key with a “.com” text?<br />

The most convenient way to add special keys is by using the Edit keyboard type window.<br />

1. Add a separate key to the on-screen keyboard using the Edit keyboard type. You can use<br />

unassigned keys that are defined using a hexadecimal code (for instance, 00D9).<br />

2. Select this key and press the Action button. In the new <strong>Keyboard</strong> Shortcuts Settings window, assign<br />

a Paste text action to this key. Enter the necessary text (in this case, “.com”) into the Text field. Do<br />

not forget the Show text on the on-screen keyboard box under the Text field.<br />

Once done configuring the settings, save them and close the window.<br />

Can I configure the pre-login on-screen keyboard to differ from the keyboard that is used after<br />

the system login?<br />

The settings of the on-screen keyboard that is used for entering the login password are stored in the<br />

Backup.ini file. This file is stored in the program installation folder. When you change the program<br />

parameters in the Options window, these parameters are saved in the Backup.ini file.<br />

If you don’t want the Backup.ini file to change, mark it as a “Read only” file.<br />

How do I paint keyboard keys into different colors?<br />

Use any graphic editor to create a BMP file with the necessary filling. The size of the image can be<br />

arbitrary (50x50 pixels will suffice). For convenience, copy this file to the “<strong>Keyboard</strong>s” subfolder.<br />

Select the necessary key in the Edit keyboard type window and specify the name of the file you just<br />

created in the Picture field. Once done, check the Show as background box next to it.<br />

How do I change keyboard parameters from my program?<br />

Program parameters are stored in the HKEY_CURRENT_USER\Software\ComfortSoftware\hvk registry<br />

key.<br />

Once your program has changed some parameters in the system registry, our program needs to load<br />

them again. This can be done by sending a windows message containing the WM_USER + 196 code to<br />

the program:<br />

WM_CSRELOADOPTIONS = WM_USER + 196;<br />

PostMessage(FindWindow('TFirstForm', 'hvkFirstForm'), WM_CSRELOADOPTIONS, 0, 0);<br />

This command allows you to do the following:<br />

- Change the interface language (labels on system keys) according to the currently selected input<br />

language<br />

- Change the keyboard transparency<br />

- Change the keyboard size<br />

- Temporarily disable the “Show the on-screen keyboard when the text cursor is visible” parameter<br />

- Temporarily disable the word autocomplete feature<br />

- Change the program settings access limitation without reloading the program


27<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

How do I transfer the program settings and data to another computer?<br />

Unfortunately, this is not a one-click action.<br />

You will need to do the following:<br />

1. Save the general settings: Options –> Advanced -> Save to File.<br />

2. Save the hotkeys settings file (the name of the file and its full path can be found in the title of the<br />

<strong>Keyboard</strong> Shortcuts Settings window).<br />

3. Restore all these data on another computer.<br />

Why won’t the program start and why does it show an error message each time I run it?<br />

1. The program works under Windows 2000 and above only. Windows 95, Windows<br />

98 and Windows CE are NOT supported.<br />

2. Some of the program components may not have been installed. Please try reinstalling the program.<br />

3. If you use Windows Vista or Windows 7, the program must be installed in the Program Files folder.<br />

It’s a security-related requirement for these operating systems.<br />

6.5 Command Line Parameters<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> (hvk.exe) accepts optional command line parameters. These can be useful to<br />

developers, and to other programs calling the program.<br />

/CLOSE<br />

Closes a previously launched instance of the program.<br />

/SHOWKEYBOARD<br />

When the program is launched, an on-screen keyboard is forcibly shown. During a regular program<br />

start, the on-screen keyboard is shown only if it was visible the last time the program was closed.<br />

/HIDEKEYBOARD<br />

The program starts with hidden on-screen keyboard. During a regular program start, the on-screen<br />

keyboard is shown if it was visible the last time the program was closed.<br />

/COMMON<br />

When it's used, the program is launched with the same settings for all users.<br />

Tells the program that its settings should be saved in the following registry key:<br />

HKEY_LOCAL_MACHINE\SOFTWARE\ComfortSoftware\hvk<br />

During a regular program start, settings are saved in:<br />

HKEY_CURRENT_USER\SOFTWARE\ComfortSoftware\hvk<br />

/INIFILE<br />

Instructs the program to save its settings in an INI file. The settings are saved in the Backup.ini file<br />

located in the program installation folder (subfolder Data).<br />

/M Num<br />

Launches several instances of the program, where Num is the number of instances to be launched.<br />

Each instance will have its own settings. By default, you can launch one instance only.<br />

/REMOTECONTROLMODE<br />

Special mode for use with remote control devices. Moving around over the keyboard can be done<br />

with the arrow keys. With Enter you can press selected key.<br />

/OPTIONS<br />

Opens the program settings window.<br />

/RESTORE<br />

When the program is launched with this parameter, it loads the settings from the INI file specified in<br />

the command line. If another instance of the program is already running, the settings from the INI file<br />

Copyright (c) by Comfort Software Group


Copyright (c) by Comfort Software Group<br />

Development 28<br />

are loaded into it. You can save the settings to an INI file using the Options window in the<br />

Advanced section.<br />

For example: C:\Program Files\<strong>Hot</strong><strong>Virtual</strong><strong>Keyboard</strong>\hvk.exe /RESTORE "C:\Program<br />

Files\<strong>Hot</strong><strong>Virtual</strong><strong>Keyboard</strong>\params.ini"<br />

/SAFEMODE<br />

Launches the program in the safe mode. Some program functions will be disabled.<br />

/DEBUG<br />

Causes the program to create a log file Log.txt in the program directory detailing program activity.<br />

This can be a helpful debugging aid.<br />

The information contained in the log file is technical in nature and therefore not intended to be<br />

understandable by end users.<br />

If a file with the specified name already exists it will be overwritten.<br />

7 Other issues<br />

FAQ - Frequently asked questions<br />

If you experience troubles with registration or using <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong>, please read this topic.<br />

License Agreement<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> End <strong>User</strong> License Agreement.<br />

Contact information<br />

Comfort Software Group contact info.<br />

7.1 FAQ - Frequently asked questions<br />

Registration issues<br />

Q: How do you know if your product is registered?<br />

A: Please select "About <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong>" from the context menu to see the registration status.<br />

Q: I have lost my <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> registration key. Now the program tells that is<br />

expired. How can I get my registration key back?<br />

A: Send an e-mail to: lost-code@comfort-software.com from the same e-mail address you used when<br />

you purchased the license to use <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong>. Please follow the format:<br />

------------------------------------------------<br />

From: (Your-name-here)<br />

E-mail: (Your-e-mail-here)<br />

Request: Please resend me the Product Key<br />

------------------------------------------------<br />

Using <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> issues<br />

Q: Can I use <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> on a network, so all users get the same results for key<br />

presses?<br />

A: Yes. You can place your Actions File on a network resource and open it on any workstation.<br />

Q: Does <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> support a "send email" action type?<br />

A: Yes. Create the "Run program" Action and specify "mailto:" and the recipient's e-mail address.<br />

Q: Can I use "Open URL" for FTP or Telnet?<br />

A: Yes. When you create a Action, specify a standard URLs like "ftp://ftp.mycompany.com" or<br />

"telnet://mycompany.com" in the "URL to browse" text field.


29<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

Q: Can the "Sleep" key be used in a shortcut?<br />

A: No, the "Wake", "Sleep" and "Power" keys cannot be choosen as hotkey or a part of a key<br />

combination for any Action.<br />

Q: How to install another language and keyboard layout?<br />

A: Follow these steps:<br />

1. In the Windows Start menu, click Start , and then click Control Panel.<br />

2. Double-click Regional and Language Options.<br />

3. Click the Languages tab, and then click Details under "Text Services and Input Languages".<br />

4. Click Add under "Installed Services", and then click the language you want to add and the<br />

keyboard layout you want to use for that language.<br />

Q: How do I transfer the program settings and data to another computer?<br />

A: Unfortunately, this is not a one-click action.<br />

You will need to do the following:<br />

1. Save the general settings: Parameters –> Advanced -> Save to File.<br />

2. Save the hotkeys settings file (the name of the file and its full path can be found in the title of the<br />

<strong>Keyboard</strong> Shortcuts Settings window).<br />

3. Restore all these data on another computer.<br />

Q: Why won’t the program start and why does it show an error message each time I run it?<br />

A:<br />

1. The program works under Windows 2000 and above only. Windows 95, Windows 98 and Windows<br />

CE are NOT supported.<br />

2. Some of the program components may not have been installed. Please try reinstalling the program.<br />

3. If you use Windows Vista or Windows 7, the program must be installed in the Program Files folder.<br />

It’s a security-related requirement for these operating systems.<br />

7.2 License Agreement<br />

HOT VIRTUAL KEYBOARD LICENSE AGREEMENT FOR USE AND DISTRIBUTION<br />

READ THE TERMS OF THIS SOFTWARE LICENSE AGREEMENT (HEREINAFTER THE "AGREEMENT")<br />

CAREFULLY. BY DOWNLOADING, INSTALLING, IMPLEMENTING OR USING THIS SOFTWARE PRODUCT,<br />

YOU AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. YOU AGREE THAT THIS<br />

AGREEMENT IS ENFORCEABLE AS ANY WRITTEN AGREEMENT NEGOTIATED AND SIGNED BY YOU AND<br />

COMFORT SOFTWARE GROUP (HEREINAFTER "COMFORTSOFTWARE"). IF YOU ARE ACCESSING<br />

SOFTWARE ELECTRONICALLY, INDICATE YOUR ACCEPTANCE OF THESE TERMS BY SELECTING THE<br />

"ACCEPT" (OR EQUIVALENT) BUTTON. IF YOU DO NOT AGREE TO ALL OF THE TERMS, PROMPTLY<br />

RETURN THE UNUSED SOFTWARE TO YOUR PLACE OF PURCHASE FOR A REFUND OR, IF SOFTWARE IS<br />

ACCESSED ELECTRONICALLY, SELECT THE "DECLINE" (OR EQUIVALENT) BUTTON.<br />

NOW, THEREFORE, IN CONSIDERATION OF THE MUTUAL PROMISES SET FORTH HEREIN,<br />

COMFORTSOFTWARE AND YOU HEREBY AGREE AS FOLLOWS:<br />

DEFINITIONS:<br />

(a) "You" shall mean the individual using, implementing, downloading, or installing the underlying<br />

Software. In the event You are using, implementing, downloading, or installing the underlying Software<br />

on behalf of an Organization, all liability for a breach of this agreement shall be the responsibility of said<br />

Organization.<br />

(b) "Licensee" shall mean You together with any Organization You may be representing, or any related<br />

agent, employee, or representative of You or such Organization that has downloaded, used, installed, or<br />

implemented the software package on Your behalf or on behalf of such Organization.<br />

(c) "Software" shall mean any and all computer programs produced, created, developed, or provided by<br />

COMFORTSOFTWARE, including, but not limited to, applicable programs, fonts, components, hosted<br />

services, source code, modules, corresponding documentation, updates, upgrades, or modifications<br />

Copyright (c) by Comfort Software Group


Copyright (c) by Comfort Software Group<br />

Other issues 30<br />

thereto.<br />

(d) "Developer" shall mean an individual who has a primary job function of developing software<br />

applications.<br />

(e) "Server" shall mean a computer system that multiple users access or make use of, including but not<br />

limited to, terminal servers, file servers, application servers or web servers.<br />

(f) "Effective <strong>User</strong>s" shall mean the number of users that are effective for software licensing, which is<br />

determined by the following method that returns the greatest number: (1) The number of computers on<br />

which the Software is installed, or (2) where the Software is used on a Server or run from a Server, the<br />

number of users per week that have access to the Software on the Server.<br />

(g) "Organization" shall mean a single company, business unit, government organization, entity or<br />

individual. In this Agreement, each subsidiary of a company or business unit with a separate Tax ID is<br />

considered a separate Organization.<br />

(h) "<strong>User</strong>" shall mean a single person that is making use of the Software.<br />

TERMS:<br />

1. License Grant<br />

In consideration for the license fee paid, and other good and valuable consideration,<br />

COMFORTSOFTWARE grants to Licensee only, unless otherwise limited by the license purchased or<br />

granted, the nonexclusive, nontransferable, perpetual, world-wide right to use the Software in<br />

accordance with this Agreement and the license defined herein that Licensee purchases ("License"). If<br />

You are installing, accessing or using this Software for Your employer, this Agreement also includes Your<br />

employer. Licensee may only use the Software according to the License purchased or granted by<br />

COMFORTSOFTWARE. COMFORTSOFTWARE offers several license types to meet the needs of different<br />

Organizations and implementations. Particular Licenses are offered for each product depending on the<br />

intended use of the Software. COMFORTSOFTWARE offers some Licenses that are granted to Licensee<br />

by this Agreement and not purchased; these include the Optional Integration License, Evaluation License,<br />

Free License and the Beta License.<br />

A. Single <strong>User</strong> License<br />

The Single <strong>User</strong> License allows use of the Software for one <strong>User</strong> in Licensee's Organization according to<br />

Effective <strong>User</strong>s.<br />

Home users may use their single computer usage license on all computers which are in property of the<br />

license owner.<br />

B. Multiple <strong>User</strong> Licensing<br />

Multiple user licenses grant the rights of the Single <strong>User</strong> License for a particular number of Effective<br />

<strong>User</strong>s. For example, a 5 <strong>User</strong> License grants the rights for 5 Single <strong>User</strong> Licenses. These licenses may be<br />

combined; for example, 1 Single <strong>User</strong> License and a 10 <strong>User</strong> License = 11 licensed users.<br />

C. Site License - allows use of the Software for all users at a single site within a single Organization.<br />

Because of the discounts associated with this license, technical support is provided to a single technical<br />

contact at Licensee's Organization instead of to each individual user.<br />

D. Enterprise License - allows use of the Software for an unlimited number of users at an unlimited<br />

number of sites within a single Organization. Because of the discounts associated with this license,<br />

technical support is provided to a single technical contact at Licensee's Organization instead of to each<br />

individual user.<br />

E. Developer License<br />

Developer Licenses allows royalty-free distribution and use of the Software internally (in the same<br />

Organization) and externally (outside the Organization) for an unlimited number of developers and up to<br />

5,000 user licenses according to Effective <strong>User</strong>s, provided Licensee adheres to the Developer License<br />

Distribution Terms.<br />

F. Developer License Distribution Terms<br />

As used in this section, the term ("<strong>User</strong> Licenses") shall mean the number of <strong>User</strong>s that Licensee's<br />

License allows according to the definition of Effective <strong>User</strong>s. The Developer License allows 5,000 Effective


31<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

<strong>User</strong>s.<br />

(a). Internal Distribution:<br />

Allows use of the Software in Licensee’s Organization, provided Licensee does not exceed its <strong>User</strong><br />

Licenses and Licensee adheres to the following terms:<br />

(1) If distribution of Licensee’s application exceeds its <strong>User</strong> Licenses, additional Developer Licenses are<br />

required; each Developer License purchased will allow distribution of an additional 5,000 Effective <strong>User</strong>s.<br />

Royalty-free, unlimited distribution is granted after purchasing three Developer Licenses.<br />

(2) The Software may be used on any number of Servers, provided that the number of users accessing<br />

all of the servers does not exceed Licensee’s <strong>User</strong> Licenses.<br />

(b). External Distribution:<br />

Allows Licensee to rent, lease or distribute the Software outside its Organization bundled with an<br />

application, provided Licensee does not exceed its <strong>User</strong> Licenses and Licensee adheres to the following<br />

terms:<br />

(1) Licensee may not resell, rent, lease or distribute the Software alone. The Software must be<br />

distributed as a component of an application and bundled with an application or with the application's<br />

installation files. The Software may only be used as part of, and in connection with, the bundled<br />

application. Licensee may embed the Software into Licensee's firmware, provided a copyright notice is<br />

added in the firmware or documentation as detailed in number 4 of this section.<br />

(2) Licensee may not resell, rent, lease, distribute or otherwise use the Software for the License that<br />

was purchased, in any way that would compete with COMFORTSOFTWARE. If it is determined by<br />

COMFORTSOFTWARE or Licensee that Licensee's distribution or use of the Software competes with<br />

COMFORTSOFTWARE, a reasonable royalty fee for Licensee's distribution or use of the Software must<br />

be negotiated and agreed to by Licensee and COMFORTSOFTWARE and paid to COMFORTSOFTWARE<br />

each quarter or another agreed upon interval of time.<br />

(3) If Licensee uses the Software internally within its Organization, Licensee shall deduct the quantity of<br />

its <strong>User</strong> Licenses used within its Organization from the total number of its <strong>User</strong> Licenses that are<br />

distributed outside its Organization. For example, if Licensee has a One Developer License and uses<br />

1,000 <strong>User</strong> Licenses internally, it may only distribute up to 4,000 <strong>User</strong> Licenses outside its Organization.<br />

(4) A valid copyright notice must be provided within the user documentation, start-up screen or in the<br />

help-about section of Licensee’s application that specifies COMFORTSOFTWARE as the provider of the<br />

Software bundled with its application, for example: “ contains software<br />

components licensed from Comfort Software Group. These products may only be used as part of and in<br />

connection with .”<br />

2. Trial version<br />

The software unlicensed trial version may be freely distributed, with exceptions noted below, provided<br />

the distribution package is not modified in any way.<br />

(a) No person or company may distribute separate parts of the package without written permission of the<br />

copyright owner.<br />

(b) The software unlicensed trial version may not be distributed inside of any other software package<br />

without written permission of the copyright owner.<br />

(c) Hacks/cracks, keys or key generators may not be included on the same distribution.<br />

3. Copyright<br />

By downloading, installing, using, or implementing this Software, Licensee acknowledges<br />

COMFORTSOFTWARE’s assertion of a copyright in the underlying software and code. The Software and<br />

the accompanying materials are licensed, not sold, to Licensee. COMFORTSOFTWARE maintains<br />

ownership of all copyright interests in the Software, including any derivative works based upon the<br />

Software, and excluding any application bundled with the Software by Licensee in accordance with this<br />

Agreement. Licensee may not rent, lease, display or distribute copies of the Software to others except<br />

under the conditions of this Agreement. Unauthorized copying of the Software or accompanying materials<br />

even if modified, merged, or included with other software, or of the written materials, is expressly<br />

forbidden. Licensee may be held legally responsible for any infringement of intellectual property rights<br />

that is caused or encouraged by Licensees failure to abide by the terms of this Agreement. Licensee may<br />

make copies of the Software as needed for development and use provided that the number of copies<br />

Copyright (c) by Comfort Software Group


Copyright (c) by Comfort Software Group<br />

Other issues 32<br />

made do not exceed the number of users allowed by the License purchased. Licensee may also make a<br />

reasonable number of archival copies of the Software for backup and recovery purposes and may<br />

temporarily use the backup copy, including but not limited to during emergency situations, disaster<br />

recovery, or disaster recovery tests. In any case, when a copy is created, any copyright notices included<br />

in the Software must be reproduced in their entirety on the copy.<br />

4. Software Modifications<br />

If the Developer License is purchased, Licensee may modify any portions of the Software as needed,<br />

provided that copyright notices are not removed.<br />

5. Agreement Duration and Termination<br />

Subject to the terms and conditions of this Agreement, this Agreement begins when the Software is<br />

downloaded, installed, used or when a License for Software is purchased or granted and is perpetual<br />

unless terminated in accordance with this Agreement. When the Agreement begins, this Agreement shall<br />

supersede all older versions of this Agreement including any older Agreements that may be embedded in<br />

the Software. This Agreement shall inure to the benefit of and be binding upon COMFORTSOFTWARE<br />

and Licensee. Licensee may terminate this Agreement at any time by returning the Software to<br />

COMFORTSOFTWARE and destroying all copies thereof. This Agreement shall terminate upon notice<br />

from COMFORTSOFTWARE if Licensee fails to comply with any provision contained herein or if the funds<br />

paid for the license are refunded or are not received, and such failure or breach is not cured within thirty<br />

(30) days of such notice. Upon termination, Licensee must destroy the Software and all copies (in part<br />

and in whole, including modified copies, if any) in its possession or control. COMFORTSOFTWARE<br />

reserves the right to terminate this Agreement if the use of Software by Licensee causes a loss of<br />

revenue for COMFORTSOFTWARE that exceeds fifty (50) times the amount Licensee paid for the License.<br />

Termination of this Agreement shall not affect the Software bundled and distributed with an application<br />

under the Developer License by Licensee prior to termination, provided Licensee has purchased a<br />

Developer License for the Software, the bundled application does not compete with<br />

COMFORTSOFTWARE in any way, and funds for the License were received and not returned or refunded<br />

in any way. All restrictions prohibiting Licensee's use of the Software and intellectual property provisions<br />

relating to Software to the benefit of COMFORTSOFTWARE shall survive termination of this Agreement.<br />

6. Priority Support and Upgrade Subscription<br />

Unless otherwise indicated in the documentation of the Software, COMFORTSOFTWARE offers a free<br />

Priority Support and Product Upgrade Subscription for a period of three (3) years from the date of<br />

purchase on all licensed Software. When Licensee’s Priority Support is active, Licensee may contact<br />

COMFORTSOFTWARE by email and through the Online Priority Support Request Form. Priority<br />

Support and Product Upgrades may be provided beyond three (3) years if the Priority Support and<br />

Upgrade Subscription are purchased. Support may be provided to the appropriate individual that (a)<br />

ordered the License; (b) is integrating the Software; (c) a Developer; or (d) the end user if each end user<br />

has a separate License for the Software. If one Developer License is purchased, technical support is<br />

provided for only one Developer. The Developers responsibilities may be transferred to another Developer<br />

within the Organization as necessary provided no more than two (2) transfers occur within any ninety<br />

(90) day period. If Licensee’s Priority Support and Product Upgrade Subscription expires, Licensee may<br />

obtain free technical support by referring to support documents at the website or by renewing the Priority<br />

Support and Product Upgrade Subscription.<br />

7. Limited warranty<br />

A. Limited warranty.<br />

If you follow the instructions, the software will perform substantially as described in the<br />

COMFORTSOFTWARE materials that you receive in or with the software.<br />

B. Term of warranty; warranty recipient; length of any implied warranties.<br />

The limited warranty covers the software for one year after acquired by the first user. If you receive<br />

supplements, updates, or replacement software during that year, they will be covered for the remainder<br />

of the warranty or 30 days, whichever is longer. If the first user transfers the software, the remainder of<br />

the warranty will apply to the recipient.


33<br />

<strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong><br />

To the extent permitted by law, any implied warranties, guarantees or conditions last only during the<br />

term of the limited warranty. Some states do not allow limitations on how long an implied warranty<br />

lasts, so these limitations may not apply to you. They also might not apply to you because some<br />

countries may not allow limitations on how long an implied warranty, guarantee or condition lasts.<br />

C. Exclusions from warranty.<br />

This warranty does not cover problems caused by your acts (or failures to act), the acts of others, or<br />

events beyond COMFORTSOFTWARE's reasonable control.<br />

D. Remedy for breach of warranty.<br />

COMFORTSOFTWARE will repair or replace the software at no charge. If COMFORTSOFTWARE cannot<br />

repair or replace it, COMFORTSOFTWARE will refund the amount shown on your receipt for the<br />

software. It will also repair or replace supplements, updates and replacement software at no charge. If<br />

COMFORTSOFTWARE cannot repair or replace them, it will refund the amount you paid for them, if any.<br />

You must uninstall the software and return any media and other associated materials to<br />

COMFORTSOFTWARE with proof of purchase to obtain a refund. These are your only remedies for<br />

breach of the limited warranty.<br />

E. Consumer rights not affected.<br />

You may have additional consumer rights under your local laws, which this agreement cannot change.<br />

F. Warranty procedures.<br />

You need proof of purchase for warranty service. For warranty service or information about how to<br />

obtain a refund for software, contact COMFORTSOFTWARE at http://hot-virtual-keyboard.com/contact/.<br />

G. No other warranties.<br />

The limited warranty is the only direct warranty from COMFORTSOFTWARE. COMFORTSOFTWARE<br />

gives no other express warranties, guarantees or conditions. Where allowed by your local laws,<br />

COMFORTSOFTWARE excludes implied warranties of merchantability, fitness for a particular purpose<br />

and non-infringement. If your local laws give you any implied warranties, guarantees or conditions,<br />

despite this exclusion, your remedies are described in the Remedy for Breach of Warranty clause above,<br />

to the extent permitted by your local laws.<br />

H. Limitation on and exclusion of damages for breach of warranty.<br />

The Limitation on and Exclusion of Damages clause above applies to breaches of this limited warranty.<br />

This warranty gives you specific legal rights, and you may also have other rights which vary from state to<br />

state. You may also have other rights which vary from country to country.<br />

Comfort Software Group<br />

Copyright (c) by Comfort Software Group


Index<br />

- A -<br />

Action types<br />

Block shortcut 11<br />

Change the language or case 11<br />

Connect/Disconnect from a network 10<br />

Lock/Restart/Shutdown 11<br />

Monitor control 10<br />

Open one or several Internet resources 10<br />

Operations with windows 10<br />

Paste text 9<br />

Perform a system action 11<br />

Play a keystroke macro 8<br />

Replace shortcut 8<br />

Run a program open a document or a folder 9<br />

Sound volume control 10<br />

- C -<br />

Customizing the keyboard type 4<br />

- E -<br />

Editing shortcut icons 7<br />

- F -<br />

FAQ - Frequently asked questions 28<br />

- H -<br />

How to buy <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> 1<br />

How to use <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> 2<br />

- I -<br />

Introducing <strong>Hot</strong> <strong>Virtual</strong> <strong>Keyboard</strong> 1<br />

- K -<br />

<strong>Keyboard</strong> Shortcuts Settings 3<br />

- L -<br />

License Agreement 29<br />

Copyright (c) by Comfort Software Group<br />

- O -<br />

Options<br />

Advanced 18<br />

Exceptions 18<br />

Gestures 15<br />

Keys 13<br />

Language Bar 17<br />

Main properties 12<br />

On-Screen <strong>Keyboard</strong> 13<br />

Shortcut icons 17<br />

Themes 13<br />

Typing aid 15<br />

Word Autocomplete 16<br />

Zoom 14<br />

- T -<br />

Template macros 6<br />

- U -<br />

Using the on-screen keyboard 2<br />

Index 34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!