PrehKeyTec POS Keyboards

PREH OPOS Driver V1.10.007b

Installation Notes

Version August 22 2008

1. General

OPOS Drivers basically consist of these two layers:

With the PREH OPOS driver you can easily communicate with all PREH keyboard extension modules under Windows operating systems.

The actual version is able to control the following modules:

Further detailled information on the latest version of the Preh OPOS Driver can be found in the file Readme.txt. This file is displayed when starting the installation. Additionally it can be reviewed after installation by a start menu shortcut.


2. Installation

Before starting installing the OPOS drivers, you should read the important annotations regarding the system requirements at the end of this document.

Before using the OPOS driver you need to install the Common Contol Objects as well as the PREH Service Objects.

We have included the Common Control Objects Version 1.10.001 installer into this package. Please Note: For the Preh OPOS driver demo applications it's recommended to have installed the CCOs version 1.4 or above.

The common control objects have been developed by Curtiss Monroe Copyright, (c) 1999-2007 RCS, Inc.; Dayton, OH. Informations and updated versions you can find at

To install the Common Control Objects please run this installer file:

To install the PREH Service Objects please run this installer file:


3. Usage Of OPOS Drivers

During the installation process of the OPOS drivers, a detailed OPOS online help will be generated automatically.
Within this help you can find descriptions about OPOS properties and events of all modules.

The OPOS sample files can only be executed if the OPOS driver is allready installed on your system.
In addition to the OPOS driver, the PREH keyboard modules must be programmed with the OPOS-specific headers and terminators. For doing this you should use the latest WinProgrammer version.
If you want to send commands towards the PS/2 keyboard under WindowsNT, 2000 and XP, the PREH PS/2 keyboard driver must be installed properly.


4. OPOS Sample Files

Start the sample applications using the appropriate start menu entry. Further detailled information can be found in the file Readme.txt.

For the modules magnetic stripe reader (MSR), keylock, line display (LCD) and for the POSKeys easy sample files are available for Microsoft Visual Basic and VisualC.
The executeable file as well as the sourcecode can be found in the appropriate subdirectories.


5. Uninstalling OPOS Driver

For uninstalling the PREH OPOS-Treiber please launch "Add/remove programs" in the control panel.


6. System Requirements

The following operating systems can be used:

If you should have any problems on installing and using these drivers we of course will like to help you:
Further information and latest drivers you can find in the internet at

Annex: Content of the file Readme.txt for PREH OPOS Driver for Windows V1.10.007b:

PREH OPOS Driver for Windows 1.10.007b
When using notepad you should activate "word wrap" for correct view of this file.

0. System Requirements
Operating systems supported: 
Windows9x, Windows NT4.0, Windows 2000/XP

The OPOS Common Control Objects (CCOs) must also be installed in addition. Please Note: For the Preh OPOS driver demo applications it's recommended to have installed the CCOs version 1.10 or above.

Preh keyboard or module configured to "OPOS settings" - see chapter 2.

1. Installation
Just follow the installation wizard.
The installation of the "Preh Driver Pack" is recommended. This package is included and will be started automatically at the end of Preh OPOS Driver setup procedure, if the included DriverPack version is newer than the installed one. If the version is same or older you should not install the driver pack again - except: see 6. Troubleshooting.

If one of the older Preh packages OPOS/JavaPOS previously was installed, some settings might be overwritten by default values during the DriverPack installation.
We recommend to uninstall all older Preh OPOS/JavaPOS packages which did not contain any Preh DriverPack before continuing (e.g. Preh OPOS Driver V1.4.46).
You need to have administrator rights to replace the Keyboard Driver within Windows NT and Windows2000/XP.

2. Configuring the Keyboard using the WinProgrammer
To use OPOS driver you need do configure keyboard's modules to OPOS settings, if not already done.
The Preh keyboard's modules (MSR, Keylock, POSKeys, etc.) must be programmed using the Opos headers.
This is done in the Preh WinProgrammer by enabling the option "OPOS settings" when creating a new keyboard layout.
The PosKeys are programmed using the Macros {POSKey001} ... {POSKey128} - usually on StdKey-Layer with Autorepeat OFF. 
Finally this keytable configuration must be downloaded into the keyboard.

For common Preh keyboard types you can find some ready-to use sample keytables in the Preh WinProgrammer: 
Please use the appropriate configuration from WinProgrammer's subdirectory .\Keytables\OposJavaPOS.

3. Usage / OPOS Demo Applications

For each supported OPOS device you can find a sample program to demonstrate the capabilities.
Please start the sample application using the appropriate start menu icon.
Then just use the usual steps (Open / Claim etc.).

The Default Device Names for Preh Keyboard's modules are:
* "PREH POSKeyboard"
* "Preh Keylock"
* "PREH Tone Indicator"
* "PREH HSMSR"            for RS232 msr module
* "PREH Line Display"     for old LCD module of MWX and MC/WX keyboards
* "PREH Scanner"          for scanner module of MWX and MC/WX keyboards

The Names of OPOS Devices are set in Windows Registry:

Please Note:
Behaviour of demo applications for MSR and PosKeyboard was changed in version 1.10:
Activated option "Automatic Enable" causes the demo app to always re-enable DataEventEnabled after DataEvent.

The MSR demo application behaviour was changed in version
Now the application does not automatically execute "GetTrackData" in case of an error event being recorded.
To retrieve the data of the "healthy tracks" in case of an error event, click onto the track fields in the dialogue.

4. Special System Configuration

4.1 Interface Settings
The Keyboard interface setting is located in the Windows registry. For changing the interface you have to change the registry key.
This can be easily done by importing regkeys. The registry key for the interface is located at:
   0x00000000 = PS/2 Interface
   0xffffffff = USB Interface

For special older keyboards with RS232 interface also:
   0x00000001 = RS232 Schnittstelle COM 1
   0x00000002 = RS232 Schnittstelle COM 2
   0x00000003 = RS232 Schnittstelle COM 3
   0x00000004 = RS232 Schnittstelle COM 4

4.2 LowLevel Keyhook for PS2
This feature was added in Driver Pack V1.1.0.0
It is only available for Windows NT4.0(SP3)/Windows 2000/Windows XP.

The automatic starting/closing of the server application using Registry Key "LLKeyhook" is only supported by package Preh JavaPOS.

The Preh Keyboard Server for PS2 can also be started manually by running "PrehKeySrv.exe".
"PrehKeySrv.exe" is installed in DriverPack subfolder "...Preh\DriverPack\ps2"
An active server application is indicated by a Preh icon in the Windows Systray.

Tip: Automatically start the Preh Keyboard Server for PS2 during Windows startup:
* Either placing a shortcut to PrehKeySrv.exe in the Windows' Startup folder -or by-
* Using the following "Run" entry (REG_SZ) in the Windows Registry:
  "Preh PS2 Keyboard Server" = "C:\Program Files\Preh\DriverPack\ps2\PrehKeySrv.exe"

In the Preh OPOS installer V1.4.0.52 a dialogue "LowLevel Keyhook" was added.
If selected, such Run key is automatically added to the registry.
Note: When using unattended installation such registry key is not automatically generated.

4.3 POSKeyboard Translation
The DataEvents result codes can be translated into user defined codes.
This is a requirement of the OPOS standard (please see OPOS documentation).

The appropriate registry keys are located here:

In previous packages this keys could be added manuall or using some Registry files:

In the Preh OPOS installer V1.4.0.56 a dialogue was added to configure the POSKeyboard:
The first option activates a translation table for the Preh POSKeyboard which results in continuous codes matching the programmed keyboard macros {POSKey001} .. {POSKey128}.
The second option does not modify the translation table. Basically you will get hardware specific non-continuous codes.

For unattended installation this is configurable using the option "KB_TRANSLATE". For details please refer to "Auto_install.txt".

5. Uninstall
5.1 Uninstall the Preh OPOS driver using Windows Control Panel -> Add/Remove Applications. 
5.2 If no more needed, you also can remove the package "Preh Driver Pack" the same way. Attention: If other packages are installed on this computer which still use this drivers (like Preh JavaPOS, etc.) you must not(!) uninstall the Preh Driver Pack!

6. Troubleshoting
6.1 Message: PREH 'keyhook.dll' not found
Obviously you have installed/removed a older software package (e.g. Preh OPOS Driver V1.4.46) after installing the driver pack. By doing so, several Windows registry settings were removed, which are required for the functionality of the PREH system files "keyhook.dll".
=> Solution: (Re)Install the latest version of the Preh DriverPack.

6.2 The codes for POSKeyboard data event are not continuous
You should use POSKeyboard Translation as described in chapter 4.3.

7. Installed files
During installation the following files will be installed:

Preh OPOS documentation:

Preh OPOS Service Object DLLs:
PrehPOSKeyboardSO.dll   Preh POSKeyboard SO
PrehKeylockSO.dll   Preh Keylock SO
PrehMSRSO.dll     Preh MSR SO
PrehToneIndicatorSO.dll   Preh Tone Indicator SO
PrehHSMSRSO.dll   Preh RS232-MSR SO (only 1.4 compliant, not registered per default)
PrehLineDisplaySO.dll   Preh Line Display SO (only 1.4 compliant, not registered per default)
PrehScannerSO.dll   Preh Scanner (only 1.4 compliant, not registered per default)

Preh OPOS Demo applications
POPOSKBD.exe	Preh OPOS POSKeyboard sample
POPOSKL.exe	Preh OPOS Keylock sample
POPOSMSR.exe	Preh OPOS MSR sample (used for "MSR" and RS232-type "HSMSR")
POPOSTI.exe	Preh OPOS Tone Indicator sample
POPOSLD.exe	Preh OPOS Line Display sample (not installed per default)
POPOSSC.exe	Preh OPOS Scanner sample (not installed per default)

Utilities to switch Preh default interface:
.\util\setusb.reg    RegFile for configuring to USB interface
.\util\setps2.reg    RegFile for configuring to PS/2 interface

Utilities to configure Preh OPOS configuration:
.\util\PosKey_default.reg   RegFile for POSKeyboard without translation
.\util\PosKey_128.reg       RegFile for POSKeyboard with translation to 1..128
.\util\Keylock_4Pos.reg     RegFile for 4 position keylock type
.\util\Keylock_5Pos.reg     RegFile for 5 position keylock type

Wise Uninstall files - do NOT delete or modify.

Additionally the included Preh Driver Pack (or newer version) must be installed.
It includes all needed components for communicating with the Preh keyboards:
* Preh Keyhook interface for PS/2 and RS232
* Preh Keyhook interface for USB
* Preh PS/2 keyboard driver - required for WindowsNT or Windows2000/XP:
  - if the Preh keyboard is connected via PS/2
  - if you want to send data/commands towards a Preh PS/2 keyboard

Included in this installation package is Preh DriverPack V1.4.0.0

8. Unattended installation 
For detailled informations please refer to the file "Auto_install.txt".

9. Version History:
Service objects for MSR, POSKeyboard, Keylock and Tone Indicator are now UPOS 1.10 compliant.

 1.10.007b  Release: 2008 Aug.22
  * DriverPack included (containing USB keyhook.dll V1.0.0.26)

 1.10.007a  Release: 2007 Nov.20
  * DriverPack included (containing USB keyhook.dll V1.0.0.22)
  * Readme.txt and Auto_Install.txt updated.

 1.10.007  Release: 2007 Feb.28
  * Service objects updated (POSKeyboard, MSR, Keylock, ToneIndicator)
  * Demo Applications updated (POSKeyboard, MSR, Keylock, ToneIndicator)
  * DriverPack included (new keyhook files).
  * Readme.txt updated  Release: 2005 Sept 21
  * Installation script improvements (TI_TYPE/KEYLOCKTYPE)
  * Readme.txt updated  Release: 2005 July 01
  * Service objects updated (Unique CLSIDs, Threading Model "Apartment")
  * HSMSR (RS232 MSR): Default - device is not registered (HSMSR=B)
  * Installation script improvements (e.g. new dialogue POSKeyboard Translation)
  * Readme.txt updated and informations added.  Release: 2005 June 09
  * Service objects and demo applications updated
  * Installation script improvements (e.g. LowLevel Keyhook dialogue for PS2)
  * Threading model setting "Both" added for all registered modules
  * DriverPack
  * Readme.txt updated and informations added.  Beta Releases: 2005 March / June  Release: 2004 March 29
  * Installation script improvements (AutoInstall).  Release: 2003 September 04
  * Readme.txt updated
  * Service objects and demo applications updated  Release: 2003 August 13
  * Readme.txt updated
  * Installation script improvements  Release: 2003 July 25
  * Service objects and demo applications updated
  * Installation script improvements

 Copyright PrehKeyTec GmbH 2008
Published by PrehKeyTec GmbH. PrehKeyTec GmbH reserves the right to update or change the products described in this document as well as the document itself, without prior notice.
This document may not be reproduced, processed or translated into electronic form or other languages without the prior written permission of PrehKeyTec GmbH.

Brands and product names mentioned in this document are trademarks or registered trademarks of their owner. e.g: Windows: Trademark of Microsoft Corporation

Help and Support
Any questions or suggestions to improve our products are welcome.
Please contact our technical support team:

PrehKeyTec GmbH
Scheinbergweg 10
97638 Mellrichstadt