First things first: What's a "Registry"?
Regardless if you're talking about Desktop, Notebook or Pocket PCs running a certain version of Microsoft Windows Operating System, they all have a registry, which basically is a database of settings and options. According to Wikipedia, "It contains information and settings for hardware, operating system software, most non-operating system software, and per-user settings. The registry also provides a window into the operation of the kernel, exposing runtime information such as performance counters and currently active hardware."
A deeper look: What's a "Registry" made of?
Registries are made of two components:
values and are structured in logical components called
hives. Look at registry
keys like they were folders, each key having the ability of containing one or several other "subkeys" and so on.
Values on the other hand are name/data pairs which are stored inside
|List of WM Registry Value Types||Values|
|REG_SZ||A string value|
|REG_BINARY||Binary data (any arbitrary data)|
|REG_DWORD||A DWORD value, a 32-bit unsigned integer (numbers between 0 and 4,294,967,295 [232 - 1]) (little-endian)|
|REG_MULTI_SZ||A multi-string value, which is an array of unique strings|
Short examples might be consisting of the following:
String values usually are paths to applications or executables. A String value example might be:
DWord values usually define the enabled/disabled, existing/inexistent, etc. state of the value. A DWord example could be:
Hives are structures of a Registry and, in a typical Windows Mobile environment; you will have the following
|List of WM Registry Hives||Values|
|HKEY_CLASSES_ROOT||stores information about registered applications, such as file associations and OLE Object Class IDs, tying them to the applications used to handle these items|
|HKEY_CURRENT_USER||stores settings that are specific to the currently logged-in user|
|HKEY_LOCAL_MACHINE||stores settings that are specific to the local computer/device|
|HKEY_USERS||contains subkeys corresponding to the HKEY_CURRENT_USER keys for each user profile actively loaded on the machine, though user hives are usually only loaded for currently logged-in users. This also contains valuable keys related information about different users|
Registry editing: principles
Editing your registry basically comes down to a few operations you need to understand: adding, deleting and modifying plus registry import and export.
Most of the times, all editing is done on the values, as they are the ones that have a finality but there are times though when you need to create keys.
Adding to the registry is done by creating either one or more values and/or one or more keys. You need to create a value or a key when the specific value or key is not in your device's registry. You create values and keys using the same method: tap and hold on an empty space, tap on "New" and select "Key" if you want to create a new Key or select one of the "DWord", "String", "Multi string" or "Binary" in case you want to create a value, depending on the type of your value to be created.
Deleting from the registry means that you will physically remove something from the registry, so that the reference is no longer to be found. You might be required to do so in cases you want to revert to defaults or undo changes made.
You modify the values of a Registry when you want to alter behavior related to that exact value. Typical scenarios are: enable/disable, path settings, and value settings.
Import and Export functionality is important in a Registry Editor application as it allows you to import a registry patch (which consists of several registry keys and values) rather than doing some huge edits yourself, or to Export existing Registry keys and values for several reasons: backing up, moving to other device, etc.
Registry editing: direct on-device registry editing
The easiest way to edit your registry is to do it directly, on your device. The advantages are that you can do this any time, any place without the need of wires, connections or a PC. The applications used to edit the Registry this way access the Registry on the device directly and so they save the changes too. These applications are Device applications which install and run on your Device.
Registry editing: remote registry editing
Heavy Registry editing, in cases you need to undertake several changes in the Registry, might require you to use, for ease of work reasons, applications that edit your registry remotely. What does this mean? It means that you will have your device connected via a wire/Bluetooth to a PC through ActiveSync or Windows Mobile Device Center, and the application used to edit the registry will access the Registry from your PC on your device through the connection. These applications usually are PC applications which install and run on your PC.
Ok - I understand - how can I find registry edits?
We have a whole section in our wiki devoted to Registry Edits. Check it out!
Registry editing applications (just some of them, really)
- PHM Registry Editor - Popular Stand-alone Windows Mobile Registry Editor for Windows Mobile
- CeRegEditor / CeRegEditor - Popular Remote Windows Mobile Registry Editor for Desktop
- Dotfred's TaskManager - A Free Task Manager Containing a Registry Editor
- Total Commander - The Popular File Explorer Alternative With a Registry Editor Inside
Word of Warning!
Registry editing can be harmful for your device! Be very careful when editing your registry and always make sure you have a full backup handy just in case!