Visual Studio Setup Project - per bruker registerinnstillinger

stemmer
16

Jeg prøver å opprettholde et oppsett Project i Visual Studio 2003(ja, det er et eldre program). Problemet vi har i øyeblikket er at vi trenger å skrive registeroppføringer til HKCUfor hver bruker på datamaskinen. De trenger å være i HKCUstedet for HKLM, fordi de er standardbrukerinnstillinger, og de endrer per bruker. Min følelse er at

  1. Dette er ikke mulig
  2. Dette er ikke noe installasjons bør gjøre, men noe søknaden bør gjøre (tross alt hva som skjer når en brukerprofil er opprettet etter installere?).

Med det i tankene, jeg fortsatt ønsker å endre så lite som mulig i søknaden, så mitt spørsmål er, er det mulig å legge til registeroppføringer for hver bruker i et Visual Studio 2003oppsett prosjekt?

Og i det øyeblikket prosjektet lister opp fem registeret rot tastene ( HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, og bruker / Machine Hive). Jeg vet egentlig ikke noe om Brukere rotnøkkel, og har ikke sett Bruker / Machine Hive. Kan noen opplyse meg om hva de er? Kanskje de kunne løse mitt problem ovenfor.

Publisert på 03/08/2008 klokken 20:35
kilden bruker
På andre språk...                            


4 svar

stemmer
5

Jeg gjetter at fordi du ønsker å sette den for alle brukere, at du er på en slags felles datamaskin, som sannsynligvis kjører under et domene?

Here Be DRAGONS

La oss si at Joe og Jane regelmessig logge på datamaskinen, så vil de hver har 'registre'.

Du vil deretter installere appen din, og installasjonsprogrammet vil ansette gigantiske hacks og avskyelige ting å sette elementer i henhold HKCU for dem.

Deretter vil bob komme sammen og logge seg på (han og 500 andre mennesker har kontoer i domenet og så kan gjøre dette). Han har aldri brukt denne maskinen før, så han har ingen registret. Første gang han logger inn, vinduer skaper ham en, men han vil ikke ha innstillingen.

Din app faller deretter over eller oppfører seg på feil måte, og bob klager høyt om disse crappy produkter fra raynixon tilføyet.

Det riktige svaret er å bare ha noen standardinnstillinger i programmet ditt, som kan skrive dem til registret hvis den ikke finner dem. Det er generelt god praksis at din app aldri bør avhenge av registeret, og skal lage ting som er nødvendig, for noen registeroppføringen, ikke bare HKCU, uansett

Svarte 03/08/2008 kl. 21:17
kilden bruker

stemmer
5

Først: Ja, dette er noe som hører til i Søknad om nøyaktig reson du har angitt: Hva skjer etter nye brukerprofilene er skapt? Ja, hvis du bruker et domenenavn det er mulig å ha noen ting å sette i registeret på skaperverket, men dette er egentlig ikke et use case. Søknaden bør sjekke om det er seetings og bruke standardinnstillingene hvis ikke.

Som blir sagt, det er mulig å endre andre brukeres Keys gjennom HKEY_USERS Hive.

Jeg har ingen erfaring med Visual Studio 2003 Setup Project, så her er litt av (helt urelaterte) VBScript kode som kanskje bare gi deg en idé hvor du skal lete:

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

(Kode Courtesy of Jeroen Ritmeijer )

Svarte 03/08/2008 kl. 20:48
kilden bruker

stemmer
1

Til tross for hva MSDN-artikkelen sier om bruker / Machine Hive, betyr det ikke skrive til HKEY_USERS. Snarere skriver til HKCU hvis du velger bare meg og HKLM hvis du velger alle.

Så min løsning kommer til å være å bruke Bruker / Machine Hive, og deretter i programmet sjekker det hvis registeroppføringer er i HKCU og hvis ikke, kopierer dem fra HKLM. Jeg vet at dette sannsynligvis ikke er den mest ideelle måten å gjøre det, men det har minst mulig endringer.

Svarte 03/08/2008 kl. 22:34
kilden bruker

stemmer
1

Jeg er delvis til min løsning med dette innlegget på MSDN (vet ikke hvordan jeg ikke kunne finne den før).

Bruker / Maskin Hive
undernøkler og verdier angitt under denne strukturen vil bli installert under HKEY_CURRENT_USER strukturen når en bruker velger "Just Me" eller HKEY_USERS bikube eller når en bruker velger "Alle" under installasjonen.

register~~POS=TRUNC

Svarte 03/08/2008 kl. 20:45
kilden bruker

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