Windows Embedded 8 Standard: Gesture Filter

Windows Embedded 8 Standard (Standard 8) brings Windows 8 features to an x86 or x64 embedded device. In the specifics of new gestures, Windows 8 manages touch and multi-touch screen with new and powerful solutions.

Each new gesture activates a new function that can be used by the operating system or it is passed to the application.

Gesture0

In an "embedded solution", it could be very interesting to protect the application against the O.S. action generated by the standard gestures. The developer of the application can continue to use system functions that return events binding to standard gestures: Press and hold, Tap, etc… but the user will not have direct access to the O.S. functions.

In the list of the new Windows 8 gestures, these are the ones that are connected to the new Windows 8 Shell (start screen) functions:

· If you start a gesture at the right edge and swipe across the screen.

Right Egde

Windows 8 opens the charms bar in which you can choose an action:

  • Serach        ( clip_image001+F)
  • Share          ( clip_image001[1]+H)
  • Start           ( clip_image001[2])
  • Devices       ( clip_image001[3]+K)
  • Settings      ( clip_image001[4]+I)

After the function names we have reported the keyboard shortcuts that are the same in any language.

To obtain the "charms bar" by using the mouse, move it in the upper or lower right edge of the screen.

Gesture4

· If you start a gesture at the top and swipe down the screen, Windows 8 changes the pointer to a little open hand. If you continue this gesture down the little hand closes itself and if the gesture arrives to the bottom, the application is closed by the system.

In other applications, when you tap the top edge, an application bar may be displayed.

Gesture7

· If you start a gesture at the left edge and swipe across the screen or move the cursor pointer in the top-left (or bottom-left) corner, Windows 8 displays the running applications list to allow the user to switch among them rapidly.

Left Egde

Gesture5

These are only few of the gestures recognized by Windows 8, but what it is interesting now is to understand the "Gesture Filter" feature that Standard 8 gives us to "filter" them.

ICE configuration

First of all, let's insert the "Gesture Filter" module into the build. The module is located in the catalog in the Features/Lockdown section and it has only one setting available.

The DisabledEdges is an integer number and its default value is 0 (zero) that means "no gesture filter active".

Gesture8

To filter one of the eight gestures, we have to calculate the value to give to this number by adding each single filter value following this table:

Egde

Value

Description

Left

1

Disables left edge input and app switcher gesture.

Right

2

Disables right edge input and charm bar gesture.

Top

4

Disables top edge input and top application bar gesture.

Bottom

8

Disables bottom edge input and bottom application bar gesture.

Top-left

16

Disables top-left edge input gesture.

Top-right

32

Disables top-right edge input gesture.

Bottom-left

64

Disables bottom-left edge input gesture.

Bottom-right

128

Disables bottom-right edge input gesture.

Here are some examples:

- With the value 15 (=1+2+4+8) the "Gesture Filter" will filter the first four functionalities;

- With the value 255 (=1+2+4+8+16+32+64+128) the "Gesture Filter" will filter all the functionalities;

NOTE: The values reported are in decimal representation.

IBW configuration

ICE toolkit gives us a simply way to insert and configure the "Gesture Filter" feature. If we use IBW to build our system image we do not have the same opportunity: we can simply insert the feature and, after system creation, we will edit directly a registry key that can enable the feature.

We can refer to the same table reported above and modify the key:

HKLM\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell\EdgeUI\DisabledEdges

Remember that the default value 0 (zero) means "no active gesture filter".

NOTE:

When we enable or modify the value of the variable we have to restart the device for the changes to take effect.

Pay attention in using this filter with other write filters enabled. The best practice is: disable any write filter, enable "Gesture Filter" following your needs, test the result and, at the end, save the system image as the "MASTER-copy".

Installation with DISM

The "Gesture Filter" module does not have any dependencies from other modules, which means that it can be added to a running "On-Line" image without any other action. By using DISM (Deployment Image Servicing and Management), we can directly install both .CAB and .EMD file that are the two parts of the "Gesture Filter" module.

To add the "Gesture Filter" module to our running Standard 8 system:

1) We have to find which are the module and the package that are part of the whole "Gesture Filter" module. In our case:

a. Microsoft-Windows-Embedded-GestureFilter-Package~31bf3856ad364e35~x86~~6.2.9200.16384.cab

b. WinEmb-Edge-Gesture-Filter~31bf3856ad364e35~x86~~6.2.9200.16384.emd

Both in the same directory:

%catalogroot%\x86\modules\FeaturePack

2) Copy the installation file (.CAB and .EMD) in a place where it can be reached by the system we want to update (for example, the root folder of a USB-Key).

3) Suppose that the USB-key for the system we want to update is called "E:"

a. Open a command prompt with administrator rights;

b. Type the following command:

dism /online /add-package /PackagePath:E:\Microsoft-Windows-Embedded-GestureFilter-Package~31bf3856ad364e35~x86~~6.2.9200.16384.cab

c. The system answers as follows:

WE8S>dism.exe /OnLine /Add-Package /PackagePath:E:\Catalog\6.2\9200.16384\x86\modules\FeaturePack\Microsoft-Windows-Embedded-GestureFilter-Package~31bf3856ad364e35~x86~~6.2.9200.16384.cab

Deployment Image Servicing and Management tool

Version: 6.2.9200.16384

Image Version: 6.2.9200.16384

Processing 1 of 1 - Adding package Microsoft-Windows-Embedded-GestureFilter-Package~31bf3856ad364e35~x86~~6.2.9200.16384

[==========================100.0%==========================]

The operation completed successfully.

Restart Windows to complete this operation.

Do you want to restart the computer now? (Y/N)

d. We do not need a restart now, let's continue with the next installation by typing:

dism /online /add-module /ModulePath:E:\WinEmb-Edge-Gesture-Filter~31bf3856ad364e35~x86~~6.2.9200.16384.emd

e. The system answers as follows:

WE8S>dism.exe /OnLine /Add-Module /ModulePath:E:\Catalog\6.2\9200.16384\x86\modules\FeaturePack\
WinEmb-Edge-Gesture-Filter~31bf3856ad364e35~x86~~6.2.9200.16384.emd

Deployment Image Servicing and Management tool

Version: 6.2.9200.16384

Image Version: 6.2.9200.16384

Adding package Microsoft-Windows-Embedded-GestureFilter-Package~31bf3856ad364e35~x86~~6.2.9200.16384

[==========================100.0%==========================]

The operation completed successfully.

Restart Windows to complete this operation.

Do you want to restart the computer now? (Y/N)

f. When the system restarts, it will complete the installation.

NOTE: By installing the module in this way, it will be right-now active even if, as default, it will not filter any gesture.

Let's practice

To understand how the "Gesture Filter" works, we can show some use cases. Let's run the registry editor Regedit.exe with administrative rights and move to:

HKLM\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell\EdgeUI

At the installation end, DisabledEdges is equal to 0 (zero), the default value.

Gesture1

To filter all the eight gestures we assign the value 255 (0xff in hexadecimal) to the variable DisabledEdges.

Gesture2

At the next login after this assignment, all the action connected to the filtered "Gestures" will not executed by Standard 8. Let's make an example: if we move the pointer cursor on the desktop screen (or in any Windows 8 App) at the top-edge, the system does not change the pointer to a little open hand, but it will remain an arrowhead (we are referring to the standard pointers).

NOTE: to use this Administrative Tool on the PC-Target, the module that contains it must be included in the build, such as for "Regedit.exe", the module is:

Features\Diagnostics, Feedback and Maintenance\Registry Editor.

To find the correct module inside the configurator (ICE) you should:

• use the "Find" (Ctrl-F) function;

• select the option "Search file names";

• search for "Regedit.exe".

Gesture3

With a double click on the row, you will be moved to the column of the Catalog with the correct module selected, then add it to the build and resolve the dependencies.

Conclusions

To protect our "embedded system" from the actions made by Standard 8 in function of the new Gestures without losing the benefits of the standard gestures managed by the system, we can use one or all of the eight "Gesture Filter" filters. We must take in mind that these filters do not protect our system from the same actions if they are activated by keyboard shortcut keys: e.g. we can filter all the "start screen Gestures" to avoid that the user could "share" some content, but if the Windows key ( clip_image001[5]) is not filtered by the keyboard filter, the user can type the shortcut sequence ( clip_image001[6]+H) to recall the "Share" function.

2 comments:

  1. Posted Tuesday, September 20, 2016 at 3:33:54 AM

    I really like your writing style, fantastic information, thanks for putting up

  2. Posted Tuesday, September 20, 2016 at 3:35:09 AM

    I really like your writing style, fantastic information, thanks for putting up

Post a comment

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

Tags

Error parsing XSLT file: \xslt\umbBlogTagcloud.xslt