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

, , , , ,

One Response to Programming Sins Regarding the Registry (Using the Example of Microsoft Excel)

  1. Shawn Bass August 14, 2009 at 04:42 #

    Thanks Helge! This was a good laugh and I really needed that today. BTW, you can\’t fault them too much for the shortened paths. Because they used the default value key they couldn\’t exact use a REG_EXPAND_SZ. Though they could certain do the delayed expansion in their code I supposed. There\’s just so many things wrong with this it\’s funny.

    Shawn

Leave a Reply