Share via


CE 6.0 Registry Editor and Default Keys.

I'm setting up a CE 6.0 operating system image that boots with the standard explorer shell (desktop icons, start button etc.) when the image boots I want the task bar to auto-hide and also not be 'on top' in the Z order.

To figure out which key this uses I booted an explorer shell, changed the shell settings and then used the remote registry editor (now Target | Remote Tools | Registry Editor) to exmaine the key changes - I also uploaded the changed keys to my desktop.

Here's how the registy key looks when extracted from the device registry to the desktop.

 REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\AutoHide]
@=dword:00000001

If I were to copy this registy information to a project registry file within Platform Builder (without the REGEDIT4 header) I would get build errors - the extracted registry format using <'@'> to denote a default key is not the format that the registry needs for the build system.

Here's how the registry key needs to look for this to work in the build system.

 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\AutoHide]
"Default"=dword:00000001

Note the use of the "Default" keyword.

- Mike

Comments

  • Anonymous
    October 24, 2006
    Great, you're the first, who publishes a bug, aint you?

  • Anonymous
    October 25, 2006
    I wouldn't call this a bug as such - The Remote Registry Editor exports registry keys in rhe same format as the desktop including the "REGEDIT4" at the top of the file which also needs to be removed before importing the keys into a CE registry. This is closer to "information" than a bug.

  • Mike
  • Anonymous
    October 25, 2006
    So what do you do if you need a value named "Default"?

  • Anonymous
    October 25, 2006
    There are two ways this is typically handled...

  1. "Default" what? - typically you might see a key like "DefaultKeyLayout" or "DefaultLCID" - which makes it easier for others working on a platform to determine what a key does.
  2. ".DefaultSounds" or ".Default" if you only want to have the word "Default" in the key. I prefer the first option, just like variable names, use something that is self documenting.
  • Mike
  • Anonymous
    October 25, 2006
    But what if you're not in control of the name of the registry value? The reason that '@' exists in the registry file format is precisely because it is outside the range of valid value names, so that it does not conflict with any other setting the user might need. I call it a bug that Windows CE's build system does not support it, instead using a value that a platform developer might need.

  • Anonymous
    October 25, 2006
    surely, as the platform developer, you are in control of the registry for your device?

  • Mike
  • Anonymous
    November 03, 2006
    Here is your answer.  Windows CE does not really have a concept of default values.  Whenever you store '@' your registry really stores the value name "default".  It is just like any other value, with a string name. Why?  Well, why not?  Default values are one bit of Windows cruft that CE did not pick up. Sue

  • Anonymous
    November 03, 2006
    Oh and let me also mention, I think that the remote registry editor really should properly handle '@'.  Our Platform Builder .reg files can handle '@' just fine.  I will log it as a bug.  So there!  It is a bug after all.  :-) Sue