Creating compelling user experiences with Explorer shell
**Updated 3/26/09 with preface
[The following article is authored by one of the Windows Embedded MVPs (Most Valuable Professionals). Our MVPs have a heavy background in Embedded systems and are a great repository of information on Windows Embedded products. We’re providing this space on our team blog as a service to our readers by allowing MVPs to share some of their knowledge with the rest of the community.]
One large benefit of Windows Embedded Standard 2009 is that you are able to pick and choose only the required piece of Windows XP Pro functionality for your project. This concept can also be applied to the Explorer shell, we all know from using desktop computers. Of course, the best deeply embedded experience is always created by using a custom shell approach, but there are situations where Explorer shell, with its well known usage concepts, provides a great human-machine interface for embedded scenarios, as well.
Configuring the image
When creating a Windows Embedded Standard image, explorer shell can easily be included just by making the “Explorer Shell” component part of the image. There is an “Explorer Application” component in the catalog, too, which contains explorer.exe, but this component alone is not enough if you want Explorer running as shell. The “Explorer Shell” component makes some additional entries into the Windows registry to enable this. It pulls in its required infrastructure including Windows Logon and Resources, which leads to minimum image footprint sizes slightly above 100 MB.
Adjusting shell behavior
The central component to configure the look and feel of explorer shell is called “User Interface Core”.
It provides settings to manipulate quite a few configuration options in start menu and task bar.
It is good to know that these options are all about the visibility of an entry and do not pull-in the associated feature components into the image. For example, “Show Internet Explorer on Start menu” will not pull in IE, but only provides the IE shortcut on the desktop that points to IE’s standard location. It still is the task of the OS developer to include all required functionality parts! I am not going to driill down into every setting, basically everything that is enabled in this configUI will show up later in the Start menu and on the Task bar after running through FBA. Prominent settings are “Show Run”, as well as the context menu settings that enable or disable the right mouse click in the context specified. There is one setting not on the list above that can be reached via the “Advanced Properties” window.
The Accessories folder can be made visible by setting the cmiShowAccessories to TRUE (default is False) .
Standard shortcuts
All shortcuts that would be available on a Windows XP Pro system are contained in the “Standard Start menu shortcuts” component.
The shortcuts are included as component resources and can be enabled/disabled as needed by right-clicking the desired shortcut entry. Please be aware, that this component also only provides the shortcuts and does not pull in functionality related to a shortcut via dependencies. If shortcuts are included without the corresponding functionality they show up with the default shortcut icon and not the icon of the application they refer to.
Control Panel applets
Another important asset looking at the shell experience are Control Panel applets. One fast approach is to place the cursor on the software node of the component catalog and then repeatedly search for “panel” and to include applets found. Important panels are:
· Display Control Panel
· Add Hardware Control Panel
· Add/Remove Programs Control Panel
· System Control Panel
· Users Control Panel
· ….
Some of the panels are found in the “Enterprise Features” macro component, as well.
System utilities
It is also good to include some of the Windows system utilities for diagnostic and configuration purposes of the Standard image
- Task manager
- Device Manager
- Registry Editor
- Command Interpreter (CMD.exe)
- Windows Accessories (includes Notepad and Paint)
- Administration support tools (includes Event Viewer and the Services MMC snap-in)
- Power Management (XPE power management application)
- EWF Manager Console Application (when EWf is used)
- TCP/IP Utilities (includes Ping and Tracert commands)
- …
There may be more depending on the project requirements, but the components listed previously already give you a good start.
Themes
With the help of themes the Windows Embedded Standard desktop is configured fast and consistently to achieve a certain combination of color and background throughout the complete Explorer shell. Windows Embedded Standard also introduced a new theme for Windows Embedded and of course it is possible to use custom themes in Standard images as well.
For custom themes, the “Windows XP Visual Style” components needs to be included into the image configuration.An interesting approach is, for example, to provide different themes for different users, giving the user direct feedback if he operates in Standard or administrative mode.There is a good article on the Microsoft XP site explaining how to create a custom theme and there are 3rd party theme creators that help you do this in the market, as well.
Screen Saver
A great screen saver can be an absolute eye catcher e.g. for kiosk systems. You are able to write screen savers in C#, for example, with the help of the RSS Screen Saver Starter Kit.
Tweak UI and Power Toys
Sure, it is fine to use utilities such as Tweak UI on Windows Embedded Standard as well, provide they fit into the licensing model for embedded systems. They may not run on any small OS image, but normally work well with images that havericher functionality.
One of the drawbacks to using this approach is that one has to do the same tasks manually over and over each time an image is created. A better solution would be to detect which settings changed, e.g. in registry and to create a new Windows Embedded component to be included in the image that will generate these settings.
Alexander Wechsler
Wechsler Consulting