I'm trying to maintain a Setup Project in Visual Studio 2003
(yes, it's a legacy application). The problem we have at the moment is that we need to write registry entries to HKCU
for every user on the computer. They need to be in the HKCU
rather than HKLM
because they are the default user settings, and they do change per user. My feeling is that
- This isn't possible
- This isn't something the installer should be doing, but something the application should be doing (after all what happens when a user profile is created after the install?).
With that in mind, I still want to change as little as possible in the application, so my question is, is it possible to add registry entries for every user in a Visual Studio 2003
setup project?
And, at the moment the project lists five registry root keys (HKEY_CLASSES_ROOT, HKEY_CURRENT_USER
, HKEY_LOCAL_MACHINE
, HKEY_USERS
, and User/Machine Hive). I don't really know anything about the Users root key, and haven't seen User/Machine Hive. Can anyone enlighten me on what they are? Perhaps they could solve my problem above.
Best Answer
First: Yes, this is something that belongs in the Application for the exact reson you specified: What happens after new user profiles are created? Sure, if you're using a domain it's possible to have some stuff put in the registry on creation, but this is not really a use case. The Application should check if there are seetings and use the default settings if not.
That being said, it IS possible to change other users Keys through the HKEY_USERS Hive.
I have no experience with the Visual Studio 2003 Setup Project, so here is a bit of (totally unrelated) VBScript code that might just give you an idea where to look:
(Code Courtesy of Jeroen Ritmeijer)