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.
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.
Windows 8 opens the charms bar in which you can choose an
action:
- Serach (
+F)
- Share (
+H)
-
Start (
)
- Devices (
+K)
- Settings (
+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.
· 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.
· 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.
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".
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.
To filter all the eight gestures we assign the value 255 (0xff
in hexadecimal) to the variable DisabledEdges.
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".
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 (
) is not filtered by the keyboard filter, the
user can type the shortcut sequence (
+H) to recall the "Share" function.