Project Setup Visual Studio - Per Setări registru de utilizatori

voturi
16

Am încercat să mențină un proiect de instalare în Visual Studio 2003(da, este o aplicație de moștenire). Problema avem în acest moment este că trebuie să scrie intrările de registry pentru HKCUpentru fiecare utilizator de pe computer. Ei au nevoie să fie în HKCUmai degrabă decât pentru HKLMcă acestea sunt setările implicite ale utilizatorului, iar acestea se schimba pentru fiecare utilizator. Sentimentul meu este că

  1. Acest lucru nu este posibil
  2. Acest lucru nu este ceva de instalare ar trebui să facă, dar ceva de aplicare ar trebui să facă (după tot ceea ce se întâmplă atunci când un profil de utilizator este creat după instalare?).

Cu asta în minte, eu încă mai doresc să schimbe cât mai puțin posibil în cerere, astfel încât întrebarea mea este, este posibil pentru a adăuga intrări de registry pentru fiecare utilizator într - un Visual Studio 2003proiect de configurare?

Și, în momentul în care proiectul listează cinci chei de registru rădăcină ( HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, și utilizator / mașină Hive). Nu știu nimic despre cheia de root, și nu au văzut utilizator / mașină Hive. Poate cineva să mă lumineze pe ceea ce sunt? Poate că ar putea rezolva problema mea de mai sus.

Întrebat 03/08/2008 la 21:35
sursa de către utilizator
În alte limbi...                            


4 răspunsuri

voturi
5

Bănuiesc că pentru că doriți să-l setați pentru toți utilizatorii, că ești un fel de computer comun, care este, probabil, care rulează sub un domeniu?

BE AICI DRAGONS

Să presupunem că Joe și Jane conectați periodic pe calculator, atunci ei vor avea fiecare „registre“.

Veți instala apoi aplicația, iar programul de instalare va folosi hacks gigant și lucruri dezgustătoare pentru a seta elemente sub HKCU pentru ei.

ATUNCI, Bob va veni de-a lungul și pe log (el, și 500 de alte persoane au conturi în domeniu și așa mai pot face acest lucru). El nu a folosit acest computer înainte, așa că nu are nici un registru. Prima dată când se conectează, ferestre îl creează unul, dar el nu va avea setarea.

Aplicația cade apoi peste sau se comportă incorect, și Bob se plânge cu voce tare despre aceste produse mizerabile din raynixon încorporate.

Răspunsul corect este de a avea doar câteva setări implicite din aplicația dvs., pe care le pot scrie la registru în cazul în care nu le găsesc. Este o bună practică generală că aplicația nu ar trebui să depindă de registru, și ar trebui să creeze lucruri după cum este necesar, pentru orice intrare de registry, nu doar HKCU, oricum

Publicat 03/08/2008 la 22:17
sursa de către utilizator

voturi
5

În primul rând: Da, acest lucru este ceva ce aparține în Cererea pentru Reson exactă pe care sunt specificate: Ce se întâmplă după noi profiluri de utilizator sunt create? Sigur, dacă utilizați un domeniu este posibil să aibă unele lucruri puse în registru cu privire la crearea, dar acest lucru nu este cu adevărat un caz de utilizare. Cererea trebuie să verifice dacă există seetings și utilizați setările implicite în cazul în care nu.

Acestea fiind spuse, este posibil să se schimbe altor utilizatori Keys prin HKEY_USERS Stup.

Nu am nici o experiență cu Visual Studio 2003 Project Setup, deci aici este un pic de (total independent) codul VBScript care s-ar putea da doar o idee de unde să se uite:

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

( Prin amabilitatea Codul de Jeroen Ritmeijer )

Publicat 03/08/2008 la 21:48
sursa de către utilizator

voturi
1

În ciuda ceea ce articol MSDN spune despre utilizator / mașină de Hive, nu scrie la HKEY_USERS. Mai degrabă scrie HKCU dacă selectați doar eu și HKLM dacă selectați toată lumea.

Deci, soluția mea va fi de a utiliza Utilizator / mașină Stup, și apoi în aplicația verifică dacă intrările de registry sunt în HKCU și, dacă nu, le copii de la HKLM. Știu acest lucru, probabil, nu este modul cel mai ideal de a face asta, dar are cea mai mică sumă de modificări.

Publicat 03/08/2008 la 23:34
sursa de către utilizator

voturi
1

Sunt partway la soluția mea cu această intrare pe MSDN (nu știu cum nu am putut găsi înainte).

Utilizator / Mașini Stupul
subcheilor și valorile introduse în cadrul acestui stup vor fi instalate sub stup HKEY_CURRENT_USER atunci când un utilizator alege „Just Me“ sau stup HKEY_USERS sau atunci când un utilizator alege „Toată lumea“ în timpul instalării.

Registry Editor

Publicat 03/08/2008 la 21:45
sursa de către utilizator

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