Projeto de instalação Visual Studio - Per Configurações de registro do usuário

votos
16

Eu estou tentando manter um projeto de instalação em Visual Studio 2003(sim, é um aplicativo herdado). O problema que temos no momento é que precisamos escrever entradas de registo para HKCUpara cada usuário no computador. Eles precisam estar no HKCUmelhor que HKLMporque eles são as configurações de usuário padrão, e eles mudam por usuário. Meu sentimento é que

  1. Isso não é possível
  2. Isso não é algo que o instalador deve fazer, mas algo a aplicação deve fazer (depois de tudo o que acontece quando um perfil de usuário é criado após a instalação?).

Com isso em mente, eu ainda quero mudar o mínimo possível na aplicação, por isso a minha pergunta é: é possível adicionar entradas de registro para cada usuário em um Visual Studio 2003projeto de instalação?

E, no momento em que o projeto enumera cinco chaves-raiz registro ( HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, e usuário / máquina Hive). Eu realmente não sei nada sobre a chave Os usuários raiz, e não vi usuário / máquina Hive. Alguém pode me esclarecer sobre o que são? Talvez eles poderiam resolver o meu problema acima.

Publicado 03/08/2008 em 21:35
fonte usuário
Em outras línguas...                            


4 respostas

votos
5

Eu estou supondo que porque você quer configurá-lo para todos os usuários, que você está em algum tipo de computador compartilhado, o que provavelmente está sendo executado em um domínio?

Seja aqui dragões

Vamos dizer que Joe e Jane log regularmente para o computador, então eles terão cada 'registros'.

Em seguida, você instalar o aplicativo, eo instalador irá empregar hacks gigantes e coisas nojentas para definir itens em HKCU para eles.

ENTÃO, bob vai vir e fazer logon (ele, e 500 outras pessoas têm contas no domínio e assim pode fazer isso). Ele nunca usou esse computador antes, então ele não tem registro. A primeira vez que fizer login, o Windows cria-lhe um, mas ele não vai ter a sua definição.

Seu aplicativo, em seguida, cai ou se comporta de forma incorreta, e Bob reclama em voz alta sobre esses produtos de baixa qualidade de raynixon incorporadas.

A resposta correta é apenas ter algumas configurações padrão em seu aplicativo, que pode escrever-los para o registro se não encontrá-los. É uma boa prática geral que a sua aplicação não deve depender do registro, e deve criar coisas, conforme necessário, para qualquer entrada de registro, não apenas HKCU, de qualquer maneira

Respondeu 03/08/2008 em 22:17
fonte usuário

votos
5

Primeiro: Sim, isso é algo que pertence ao Pedido de reson exato que você especificado: O que acontece depois de novos perfis de usuário são criados? Claro, se você estiver usando um domínio que é possível ter algumas coisas colocar no registro na criação, mas isso não é realmente um caso de uso. O aplicativo deve verificar se existem seetings e usar as configurações padrão se não.

Dito isto, é possível alterar outras Chaves de usuários através do HKEY_USERS Hive.

Eu não tenho nenhuma experiência com o projeto de instalação do Visual Studio 2003, por isso aqui é um pouco de (totalmente alheios) de código VBScript que só poderia dar-lhe uma idéia de onde procurar:

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

(Cortesia Código de Jeroen Ritmeijer )

Respondeu 03/08/2008 em 21:48
fonte usuário

votos
1

Apesar do que o artigo do MSDN diz sobre User / Máquina Hive, ele não escreve para HKEY_USERS. Pelo contrário, escreve a HKCU se você selecionar Just Me e HKLM se você selecionar todos.

Assim, a minha solução vai ser usar o User / Máquina Hive, e, em seguida, no aplicativo que verifica se as entradas do Registro estão em HKCU e se não, copia-os de HKLM. Eu sei que isso não é provavelmente a forma mais ideal de fazê-lo, mas não tem a menor quantidade de mudanças.

Respondeu 03/08/2008 em 23:34
fonte usuário

votos
1

Estou parcialmente a minha solução com esta entrada no MSDN (não sei como eu não poderia encontrá-lo antes).

Usuário / máquina Hive
Subchaves e valores inseridos sob este ramo será instalado sob a seção HKEY_CURRENT_USER quando um usuário escolhe "Just Me" ou a colmeia HKEY_USERS ou quando um usuário escolhe "Todos" durante a instalação.

editor do registro

Respondeu 03/08/2008 em 21:45
fonte usuário

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