Projet d'installation de Visual Studio - Par Paramètres du Registre de l'utilisateur

voix
16

J'essaie de maintenir un projet d'installation dans Visual Studio 2003(oui, il est une application héritée). Le problème que nous avons à l'heure actuelle est que nous devons écrire des entrées de Registre pour HKCUpour chaque utilisateur sur l'ordinateur. Ils doivent être en HKCUplutôt que HKLMparce qu'ils sont les paramètres utilisateur par défaut, et ils ne changent par l' utilisateur. Mon sentiment est que

  1. Ce n'est pas possible
  2. Ce n'est pas quelque chose que l'installateur devrait faire, mais quelque chose l'application devrait faire (après tout ce qui se passe lorsqu'un profil utilisateur est créé après l'installation?).

Avec cela à l' esprit, je veux encore changer aussi peu que possible dans l'application, donc ma question est, est - il possible d'ajouter des entrées de registre pour chaque utilisateur dans un Visual Studio 2003projet d'installation?

Et, au moment où le projet énumère cinq clés racine de registre ( HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERSet l' utilisateur / machine Ruche). Je ne sais pas vraiment quoi que ce soit au sujet de la clé racine des utilisateurs, et ne l' ai pas vu l' utilisateur / machine Ruche. Quelqu'un peut -il me éclairer sur ce qu'ils sont? Peut-être qu'ils pourraient résoudre mon problème ci - dessus.

Créé 03/08/2008 à 21:35
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
5

Je devine que parce que vous voulez le mettre pour tous les utilisateurs, que vous êtes sur une sorte d'ordinateur partagé, qui est probablement en cours d'exécution dans un domaine?

VOILÀ DES DRAGONS

Disons que Joe et Jane régulièrement connecter sur l'ordinateur, ils auront chacun « registres ».

Vous pourrez ensuite installer votre application, et le programme d'installation emploiera hacks géants et des choses dégoûtantes pour mettre les articles sous HKCU pour eux.

ALORS, bob viendra et se connecter (il, et 500 autres personnes ont des comptes dans le domaine et ne peut donc faire). Il n'a jamais utilisé cet ordinateur, donc il n'a pas de registre. La première fois qu'il se connecte, fenêtres lui crée un, mais il n'aura pas votre réglage.

Votre application tombe alors au-dessus ou se comporte mal, et Bob se plaint bruyamment au sujet de ces produits merdiques de raynixon incorporés.

La bonne réponse est d'avoir juste quelques paramètres par défaut dans votre application, ce qui peut les écrire dans le registre si elle ne les trouve pas. Il est une bonne pratique générale que votre application ne doit jamais dépendre du registre, et devrait créer des choses au besoin, pour toute entrée de registre, non seulement HKCU, de toute façon

Créé 03/08/2008 à 22:17
source utilisateur

voix
5

Tout d'abord: Oui, cela est quelque chose qui appartient à la demande de l'Reson que vous avez spécifié: Qu'est-ce qui se passe après les nouveaux profils d'utilisateurs sont créés? Bien sûr, si vous utilisez un domaine, il est possible d'avoir des trucs mis dans le registre sur la création, mais ce n'est pas vraiment un cas d'utilisation. La demande doit vérifier s'il y a seetings et utiliser les paramètres par défaut sinon.

Cela étant dit, il est possible de changer d'autres utilisateurs clés par le HKEY_USERS Ruche.

Je n'ai aucune expérience avec le Visual Studio 2003 Projet d'installation, voici donc un peu (totalement sans rapport) code VBScript qui pourrait vous donner une idée où chercher:

const HKEY_USERS = &H80000003
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = ""
objReg.EnumKey HKEY_USERS, strKeyPath, arrSubKeys
strKeyPath = "\Software\Microsoft\Windows\CurrentVersion\WinTrust\Trust Providers\Software Publishing"
For Each subkey In arrSubKeys
    objReg.SetDWORDValue HKEY_USERS, subkey & strKeyPath, "State", 146944
Next

(Code aimable autorisation de Jeroen Ritmeijer )

Créé 03/08/2008 à 21:48
source utilisateur

voix
1

En dépit de ce que l' article MSDN dit à propos de l' utilisateur / machine Hive, il n'écrit pas HKEY_USERS. Au contraire , il écrit à HKCU si vous sélectionnez Just Me et HKLM si vous sélectionnez tout le monde.

Donc, ma solution va être d'utiliser l'utilisateur / machine Ruche, puis dans l'application, il vérifie si les entrées de registre sont HKCU et sinon, les copie de HKLM. Je sais que cela est probablement pas la façon idéale de le faire, mais il a le moins de changements.

Créé 03/08/2008 à 23:34
source utilisateur

voix
1

Je suis à ma solution à mi-chemin avec cette entrée sur MSDN (ne sais pas comment je ne pouvais pas trouver avant).

Utilisateur / machine Hive
sous - clés et les valeurs saisies dans cette ruche seront installés sous la ruche HKEY_CURRENT_USER lorsqu'un utilisateur choisit « Just Me » ou la ruche HKEY_USERS ou lorsqu'un utilisateur choisit « Tout le monde » lors de l' installation.

Éditeur de registre

Créé 03/08/2008 à 21:45
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more