[Windows Mobile Apps and Games] Skrobel:
ini files requirements

The .ini file should be a Unicode text file stored in the same folder that the program executable is stored. The names of the file must be exactly one of the names mentioned above (keys_System.ini, keys_Manila.ini, keys_Other.ini). Of course the “keys_Manila.ini” file is not reserved ONLY for values connected with Manila/HTC and the “keys_System.ini” doesn’t need to contain ONLY system settings. It’s my proposal for the entries grouping, but you can change the contents according to your own needs. Only leave the file names intact.

About the syntax:

I tried to make the syntax of these .ini files as simple as possible. So it’s really similar to the syntax of a normal .reg file, exctept it does not need a “REGEDIT4” nor “Windows Registry Editor Version 5.00” at the beginning and of course the values cannot be given next to the valuenames. Here are some examples of the content of an ini file:

[HKEY_LOCAL_MACHINE\SOFTWARE\WIDCOMM\Connections]*
[HKEY_LOCAL_MACHINE\nls\overrides]
*
[HKEY_CURRENT_USER\Software\Microsoft\Inbox\Settings]
"SMSDeliveryNotify"
"SMSAvailable"
"SMSUnicode"
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\QuickGPS]
actSync
auto
roaming
[HKEY_CURRENT_USER\SOFTWARE\HTC\MANILA]
Manila://*
"Weather*"
*Co0kie*
*Enabled

And what does it mean?

[HKEY_LOCAL_MACHINE\SOFTWARE\WIDCOMM\Connections]*

It means that the specified key will be stored with all it’s values and subkeys (if there are any).

[HKEY_LOCAL_MACHINE\nls\overrides]
*

This one means that all the values under the [HKEY_LOCAL_MACHINE\nls\overrides] will be stored but without any subkeys.

[HKEY_CURRENT_USER\Software\Microsoft\Inbox\Settings]
"SMSDeliveryNotify"
"SMSAvailable"
"SMSUnicode"
[HKEY_LOCAL_MACHINE\SOFTWARE\HTC\QuickGPS]
actSync
auto
roaming

In these two cases only the mentioned values will be stored from the specified key.

[HKEY_CURRENT_USER\SOFTWARE\HTC\MANILA]
Manila://*
"Weather*"
*Co0kie*
*Enabled

And this is an example of using

regular expressions

.

Manila://* - means that all the values with names starting with “Manila://” will be saved

*Enabled - means that all the values with names ending with “Enabled” will be saved

*Co0kie* - means that all the values with names containing “Co0kie” will be saved

As you can see the quotes are ignored so you can put valuenames with or without them and it will not make any difference for the parser.

The current version of the program includes my .ini files that are a result of long and careful tests and save most of the configuration of WM6.5 and WM6.5.x. I created these .ini files on HTC Rhodium and different Jackos ROMs. Most of them should work on a variety of HTC devices, however I've already seen that many settings for HTC Kaiser is stored in different locations than on Rhodium. But as I wrote before: if a registry key/value mentioned in the .ini file is not found in the actual registry, it will not be stored in any form.

On the other hand some of the key names may not work or not exist on different devices/ROMs. Especially when you try to restore a bunch of settings taken from a Sense 2.5 ROM on a Titanium or CHome ROM, you should expect some problems. That’s where grouping comes in handy.

If you have ideas for other registry values which should be backed-up by default or settings for popular third party programs I don’t use, please share key/value names here with a short description of what the values mean. I will put them in the default .ini files so other users can benefit from them.