Frequently Asked Questions

Frequently Asked Questions


You may also find what you are looking for at Virtual Keyboard Design. A site devoted to the discussion of designing virtual keyboards and helping MountFocus Keyboard users with our software.

Click on any question to be taken directly to the answer.

  1. If I install the MountFocus Keyboard Designer, will my monitor become a touch screen?
  2. Can I use the MountFocus Keyboard Designer to design a key which is not available on my keyboard?
  3. I created a keyboard for a touchscreen but cannot launch it from my VB application.
  4. How can I minimize (and maximize) the virtual keyboard with one keystroke, or on a touchscreen where I can't right click on the systray icon?
  5. I need to execute 2 Runtime Keyboards in different places of the desktop. The first keyboard must be in position 1 (upper left of desktop) and the second in position 4 (lower left of desktop). When I execute the two Runtime Keyboards their positions are the same (upper left), and I must manually move one of them to the lower left position.
  6. Is it possible to make a keyboard available when the Windows NT (or later) login comes up so that the user may log onto the computer  using the virtual keyboard?
  7. I am working on a touchscreen project where the virtual keyboard will be displayed and hidden at will from an application that is going to  be written in Delphi V5.0.
  8. I'm trying to conserve touch screen space. How is this possible with the MountFocus Keyboard Designer?
  9. I see you have an COM Automation Server. What methods are available in your COM interface?
  10. How can I control a Runtime Keyboard from Oracle form (version 6.0 or 6i) using ActiveX?
  11. My license key doesnt work.

  1. If I install the MountFocus Keyboard Designer, will my monitor become a touch screen?

    The short answer: No. Sorry, but the technology just isn't there. You will need a touchscreen capable monitor to use the virtual keyboards created by the MountFocus Keyboard Designer with  a touchscreen. You CAN however, use your mouse with the Keyboard Designer and any keyboard produced with the Designer.

  2. Can I use the MountFocus Keyboard Designer to design a key which is not available on my keyboard? (For example alt + 157 - the  symbol for Japanese Yen )

     -Keystrokes
     
    • MENU (Alt)
      • NUMPAD1
      • NUMPAD5
      • NUMPAD7

    This will produce the same effect as holding Alt and typing 157 on the numeric keypad. When you specify MENU (alt) as a separate keypress the Runtime  Keyboard will generate a "MENU Key Down" message, then send all remaining keypresses and finally release the MENU key.

    Note: This only works in version 1.1 and later. If you are running an earlier version, you can download the newest version for free here.

    With version 3.2 and later you can also send any Unicode character instead of a keystroke.

  3. I created a keyboard for a touchscreen but cannot launch it from my VB application.

    Here is some sample code:

    Set MyKey = CreateObject("Kbd.mfSoftkeys")

    MyKey.LoadKeyboard("MyKey.kbd")

    Remember that a COM object will close itself automatically if the reference variable (MyKey) goes out of scope. In other words, if you declare the variable to hold the reference to the COM object in a "button clicked" event - you will never see the keyboard because it will close as soon as the event finishes executing.

    So to test the keyboard from VB, make sure you declare your reference variable (MyKey in this example) globally. The keyboard will then close itself automatically when your program is closed.

    When using the "LoadKeyboard" COM function You should always use the full path and filename (e.g. "C:\Program Files\MountFocus\Keyboard\MyKey.kbd") to load a keyboard.

  4. How can I minimize (and maximize) the virtual keyboard with one keystroke, or on a touchscreen where I can't right click on the  systray icon?

    The Keyboard Designer allows multiple page controls, which can be used to make the keyboard appear to minimize. For details, read this article on our support site.

  5. I need to execute 2 Runtime Keyboards in different places of the desktop. The first keyboard must be in position 1 (upper left of desktop) and the second in position 4 (lower left of desktop). When I execute the two Runtime Keyboards their positions are the same (upper left), and I must manually move one of them to the lower left position.

    Use the command line parameter "-p" directly followed by a number from "1" to "5" representing upper left, upper right, center, lower left and lower right. For example "-p3" will open the Runtime keyboard centered on the desktop.

  6. Is it possible to make a keyboard available when the Windows NT (or Windows 2000) login comes up so that the user may log onto the computer using the virtual keyboard?

    This is possible using version 2.1 or later which you can upgrade to for free.

  7. I am working on a touchscreen project where the virtual keyboard will be displayed and hidden at will from an application that is  going to be written in Delphi V5.0.

    To gain access to the runtime properties and functions from Delphi, follow these steps:

    1. In Delphi 5 (or later) select "Import Type Library" from the "Project" menu.
    2. Select "Kbd Library" from the list that appears and the click on the "Create Unit" button.

    In the created unit you will have a class named TmfSoftkeys which gives you access to all available runtime properties and functions. When you instanciate  (create) an object of this type, a runtime keyboard will appear automatically, and when the object is destroyed, the runtime keyboard will close automatically.

    In addition to hiding and showing the runtime keyboard there are some other functions available as well. Search for COM in the help file for a detailed  description.

  8. I'm trying to conserve touch screen space. How is this possible with the MountFocus Keyboard Designer?

    The MountFocus Keyboard Designer allows multiple "pages" of keys. This means that you can have all the alphabetic keys on one page, all the numeric on a second and so on. Version 2.1 and later allows a keypress to cause a page change. For further details, see this article on our support site.

  9. I see you have an COM Automation Server. What methods are available in your COM interface?

    Here is a brief list of the available functions and properties. For details on using these, refer to the manual or the help file.

    Properties:

    1. ActivePageIndex (long) Selects the active Keyboard Page (0 to number of Keyboard Pages - 1).
    2. ActivePageName (bstr) Selects the active Keyboard page (any valid Keyboard Page name).
    3. Blend (long) Sets transparency factor (0 to 255).
    4. Height (RO) (long) Returns the Runtime Keyboard window height in pixels.
    5. Left (long) Set the Runtime Keyboard left position (0 to desktop width - keyboard width).
    6. MenuOn (long) Switches on or off the system tray menu (0 for "off" and any other value for "on").
    7. MoveMode (long) Selects how to move the Runtime Keyboard in Anywhere mode (0 for "Drag" and 1 for "Click" - other values map to  "Drag").
    8. Position (long) Sets the position of the Runtime Keyboard. Accepts the values listed below. Any other value maps to "Anywhere".
    9. 0. Anywhere
      1. Upper left corner of desktop 
      2. Upper right corner of desktop 
      3. Center of desktop 
      4. Lower left corner of desktop 
      5. Lower right corner of desktop 
      6. Movable
    10. SoundOn (long) Switches sound on or off (0 for "off" and any other value for "on"). 
      Top (long) Sets the Runtime Keyboard top position (0 to desktop height - keyboard height).
    11. TrNumPad (long) Switches on or off translation of numeric keypad keys when is off (0 for "off" and any other value for "on").
    12. Wait (unsigned long) Sets the time in milliseconds to wait before dispatching keystrokes (0 or higher - values over 1000 renders the keyboard more or less useless).
    13. Width (RO) (long) Returns the Runtime Keyboard window width in pixels.
    14. WinHandle (RO) (long) Returns the standard windows handle value.

    Functions:

    1. ClosePage (no parameters) Closes the current Keyboard Page.
    2. Hide (no parameters) Hides the entire Runtime Keyboard window.
    3. LoadKeyboard (Filename: bstr) Loads the keyboard file specified in the Filename parameter.
    4. SetIndicator (IndicatorNo, State: long) Sets the indicator specified in the IndicatorNo parameter (0 to 250) to "off" if the State parameter is 0 and "on" if the State parameter is non-zero.
    5. SetToTop (no parameters) Forces the Runtime Keyboard window to reset itself to "stay on top", placing it on top of newer windows using the  same function.
    6. Show (no parameters) Redisplays the Runtime Keyboard window if it was previously hidden.

  10. How can I control a Runtime Keyboard from Oracle form (version 6.0 or 6i) using ActiveX? (generously provided by Patrick Jenneskens)
     
    1. On the form where you want to use the Mountfocus Keyboard create an Ole container.
    2. In the Ole container press the right mouse button and select from the popup menu 'Insert object'. From the list of available objects select  'mfSoftkeysCtrl Class'. After selecting this a keyboard will be shown in the Ole container.
    3. From the menu bar select Program Import OLE Library Interfaces. From the list of available classes select Kbd.mfSoftkeys. Select the Method Package 'ImfSoftkeys' and press Ok.
    4. Select Program once again Import OLE Library Interfaces. From the list of available classes select now the Kbd.mfSoftkeysCtrl.
    5. Select the Method Package 'ImfSoftkeysCtrl and press Ok.
    6. After step 3 and 4 you should have the program units KBDLIB_CONSTANTS (Package spec), KBD_CONSTANTS (Package spec), KBD_IMFSOFTKEYS (Package spec),  KBD_IMFSOFTKEYS (Package body), KBD_IMFSOFTKEYSCTRL (Package spec) and KBD_IMFSOFTKEYSCTRL (Package body).
    7. After these steps you're able to call all the functions and properties of the Mountfocus Keyboard. For example: I created a data block named BL_OLE.  In this data block I created an Ole container named OLE_KEYB. When I want to load a keyboard I use the command:

      Kbd_ImfSoftkeysCtrl.LoadKeyboard(:ITEM('BL_OLE.OLE_KEYB').int  erface, 'c:\mountfocus\US800.kbd');

      In this command LoadKeyboard is a procedure in the Kbd_ImfSoftkeysCtrl program unit, :ITEM('BL_OLE.OLE_KEYB').interface points to the OLE_KEYB ole container, and c:\mountfocus\US800.kbd is the keyboard which has to be loaded. Look in the KBD_IMFSOFTKEYSCTRL (Package spec) for all available functions and properties.

      Warning: When you use forms 6.0 it might be possible that at runtime the mfSoftkeysCtrl Class isn't loaded automatically. Compiling the form using  forms 6i will solve this problem.

  11. My license key doesn't work.

    The most common reason for the license key to fail is that the date on your computer is wrong. Also, you need administrator rights when entering the license key.
TOP