Hello,
Your application's registry settings are being "moved" because you are
attempting to write to a restricted area of the registry
(HKEY_LOCAL_MACHINE) and your application does not have a Vista-style
manifest.
In Windows Vista, applications that do not request admin privileges (via a
"Windows needs your permission to continue" prompt) do not receive them.
The HKLM key requires admin permission to write to it.
Windows Vista realizes your application is not vista-compatible (because it
does not contain a vista manifest), and so "fakes out" your program by
silently moving the registry writes you make to HKLM to the
HKEY_CURRENT_USERS folder.
Thus, the data that your application "thinks" is being shared by everyone on
the computer is actually NOT being shared - each user has their own copy and
CANNOT see other user's data.
It is unacceptable to publish an application that relies on this "hack" in
order to function.
The best solution here is to stop using HKLM and use HKEY_CURRENT_USER
instead. You should also embed a Vista manifest into your application so
Windows Vista will stop doing these kinds of tricks for your application.
--
- JB
Microsoft MVP - Windows Shell/User
Windows Vista Support Faq
http://www.jimmah.com/vista/