Windows Embedded Standard 7 SP1: Keyboard filter (1/4)

This is the first post of a series of articles on Windows Embedded Standard 7, especially on the changes introduced by Service Pack 1 and later releases.

The first issue that we deal with is "keyboard filter". In embedded devices with different forms from desktop PC (such as cash registers or information kiosks), the manufacturers often have the need for proprietary solutions for the keyboard, referring to the form-factor and to keys number and their functions. In this case they often take advantage of the situation by physically eliminating keyboard keys that are potentially dangerous for their dedicated applications: e.g. Windows key and/or List key. Equally often, however, there is the need to leave the accessibility to one or more USB ports for many purposes: maintenance, update or actual functionality required by the application. By connecting a standard USB keyboard to the USB port, all efforts to limit the use of unintended shortcuts are completely negate.

Microsoft has developed a solution which allows you to "filter" all keys and/or key combinations coming from the keyboard and to send only the permitted ones to the application.

In this post and the next we will analyze the various aspects of this package by examining how to configure and use it. In particular, after introducing the topic, we will deal with how to insert the package "Keyboard Filter" into the Windows Embedded Standard 7 build, how to manage its service and how to configure it in general.

Keyboard filter

Keyboard filter is a feature that was released for the first time in Windows Embedded POSReady 7: a version of Windows Embedded Standard 7 where the build has been completely done by Microsoft by adding all the typical software layers needed by POS (Point of Services), that means devices that involve a business transaction or data retrieval information (for example, distributors of items, tickets, consumables, information kiosks, etc…).

This feature allows you to configure the shortcuts you do not want to come in from the keyboard, for example: Ctrl+Alt+Del or Windows+L. These combinations, like many others, can cause unwanted commands execution in a dedicated device where, in front of the screen, there is an end-user and not a technician.

Manufacturers of embedded devices very often design solutions with a custom keyboard without unwanted keys such as: Windows, Menu, Alt, etc... but then, during the production phase, they realize that some combinations are required both by the end-user and applications themselves (Ctrl+C, Ctrl+X, Ctrl+V, etc...) or by necessities brought by language (for example the snail "@" on the Italian keyboard is Alt Gr+ò; if Alt Gr has been removed from the physical keyboard, nobody will be able to insert the snail anymore).

The inconsistency of the physical solution becomes obvious if you think that many devices offer, outside of the box and for various reasons, an USB port. It becomes trivial at this point to connect a USB keyboard to the available port and overcome all the barriers that we thought we had built with a customized physical keyboard.

In the latest solutions we have seen a progressive increase of touch-screen solutions with on screen keyboards that, similarly to physical ones, may be limited to a small set of characters, but even here the connection of a USB keyboard, or a full-keyboard application would defeat the whole.

We have to point out that all the virtual keyboards, both the Windows internals and the customized ones, are not "filtered" from this solution that is effective (by design) only for physical keyboards.

Another element of attention is linked to the nationality of the keyboard. The filter is designed to run on the English keyboard and then all the names and key combinations must be spelled out in English.

The keyboard filter has a number of predefined combinations that can be managed with specific policies, but it also allows the creation of customized ones, in order to covers all the needs easily and effectively.

In this chapter we will analyze how to insert the right packages in the build to handle the keyboard filter and how to configure it so that the user won't be able to send unwanted key sequences either to applications or the system.

How to insert "Keyboard Filter" package in the build

At this moment to insert "Keyboard Filter" package in the build is very simple because it does not allow any configuration. The package of this new feature is NOT included in SP1, but was released later (September 2011) so, if you do not find "Keyboard Filter" items inside the "Embedded Enabling Features", you have to first update the working Distribution Share.

Keyboard Filter service

The keyboard filter feature is based on a Windows service named "KeyboardFilter" that can be started or stopped from a command prompt (with administrator rights).

To start it type: sc start keyboardfilter

To stop it type: sc stop keyboardfilter

If you stop the service, it will remain in the same state even after the next computer restart. To restart the service you will have to type the start command manually.

Keyboard Filter configuration

To configure keyboard filter parameters you have to use Local Group Policy Editor(gpedit.msc) located in the folder C:\Windows\System32\. This program is part of the Windows console management (MMC, Microsoft Management Console), which allows you to change, with the same user interface, configurations for a single user and those referring to the system. You need administrator privileges to use this console, but you can customize configurations for each individual user. This is one of the reasons why the Keyboard Filter configuration, at present, should be done after the system is generated.

We can divide the key combinations that you can pick up in two groups: predefined and custom.

Configure predefined key combinations

In this list the most common key combinations are grouped in order to simplify the configuration. These combinations can be divided into:

· Accessibility keys

· Application keys

· Desktop and shell keys

· Modifier keys

· Security keys

· Windows management keys

In the next post will enter more in detail of each group of combinations.

Configure and test predefined key combination

In this list are grouped the predefined key combinations such as: Ctrl+Alt+Canc, Windows+R, etc. .... For each of these combinations, you can activate the filter.

In a future post we will enter more into detail about how to filter these combinations.

Configure custom key combinations

The part of custom key combination filters allows you to create shortcuts NOT included in the predefined group. There is a methodology and rules to follow to disable these combinations.

In a future post we will enter more into detail about how to filter these combinations.

Configure Keyboard Filters for Non English Keyboards

Custom filters we discussed above, refer to the key "names" on the US-English keyboard. When you want to refer to national keyboard (take the case of "Italian") must still refer to the English key names. For reference we list matching keys with their names and groupings.

In a future post we will enter more into detail about these key functions with their names and groupings.

Keyboard Filters and On-Screen Keyboards

The standard "On-Screen Keyboard" displays a visual keyboard similar to that of the nation's current physical, where the keys can be selected with the mouse or other pointing device (or your fingers in case of touch-screen). The screen keyboard is not blocked by filters.

Keyboard filters take effect only on physical keyboards. All the software solutions that manage "virtual input keys" (using system calls) cannot be blocked in this way.


In the next post of this article we will cover how to "Configure and test predefined key combination".

These articles, divided into posts, were written, revised and translated into English as well as by me by other two colleagues of mine (both Microsoft Certified Trainer for Windows Embedded Standard 7): Gianni Rosa Gallina and Dorangela Daniele.

3 comments:

  1. Posted Thursday, August 16, 2012 at 2:45:32 PM

    Great Article was wondering where you download the keyboard filtering package from as I am trying to do this on a HP 5570e thin client with windows 7 embedded standard sp1

    Thanks

  2. Posted Wednesday, September 14, 2016 at 7:09:54 AM

    Really great info can be found on site.

  3. Posted Wednesday, September 14, 2016 at 7:11:09 AM

    Really great info can be found on site.

Post a comment

MVP - Microsoft Most Valuable Professional Logo Microsoft Certified Technology Specialist logo

Tags

Error parsing XSLT file: \xslt\umbBlogTagcloud.xslt