by: Helge, published: Aug 13, 2009, updated: Oct 27, 2010, in

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!).

Previous Article Registry Fun (Working With Hive Files)
Next Article New Web Content Actually Worth Reading (August 2009)