Programming Sins Regarding the Registry (Using the Example of Microsoft Excel)
While browsing through the registry I found the following “gem”. It illustrates nicely how programmers are not supposed to store settings in the registry:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Nach Microsoft E&xcel exportieren] @="res://C:\\PROGRA~2\\MICROS~1\\Office12\\EXCEL.EXE/3000" "Contexts"=dword:00000001
What is wrong with this? Several things:
- Localization: Never localize keys or values in the registry (the same applies to configuration files, of course).
- Spelling: Do not misspell the name of your product.
- Short paths: Never use short paths.
- Absolute paths: Use variables like %ProgramFiles% instead of absolute paths.
- Default value: A registry key’s default value is relict from Windows 3.1. Use named values instead.
Note: This is from a Windows 7 machine with Office 2007 installed (no older Office versions present!).