A modern regedit.exe (i.e. Vista+ with UAC on) has the unfortunate notion that it must be run "as an administrator" - I'm not sure if it's technically true that it must be an "Administrator", but this issue is a result of UAC and failed elevation.
This is a silly artificial restriction as the user has access (readonly) to most registry locations and write to HKCU. However, other than disabling UAC, which requires admin permissions and may be inadvisable, I do not how this restriction on regedit.exe can be bypassed.
- It should be possible to use reg.exe (which is distributed with Windows), albeit without a nice UI.
- Use a 3rd party registry editor/tool where this silly UAC elevation/restriction does not apply.
- It may be possible to use regedit.exe from Windows XP which is not "UAC aware" - YMMV.
- As suggested by sircapsalot, use managed API - perfect if already using C#.