Visual Studio Instalator Project - Per Ustawienia rejestru użytkowników

głosy
16

Staram się utrzymać projekt w konfiguracji Visual Studio 2003(tak, jest to aplikacja Legacy). Problem mamy w tej chwili jest to, że trzeba pisać wpisy rejestru, aby HKCUdla każdego użytkownika komputera. Muszą być w HKCUraczej niż HKLMbo są domyślne ustawienia użytkownika, a oni zmienić na użytkownika. Mam wrażenie, że

  1. To nie jest możliwe
  2. To nie jest coś, instalator powinien robić, ale coś wniosek należy robić (po wszystkim, co się dzieje, gdy profil użytkownika jest tworzony po instalacji?).

Mając to na uwadze, że nadal chce zmienić w jak najmniejszym stopniu w aplikacji, więc moje pytanie brzmi, czy jest możliwe, aby dodać wpisy rejestru dla każdego użytkownika w Visual Studio 2003projekcie instalacji?

I w tej chwili projekt wymienia pięć kluczy rejestru korzeniowych ( HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, i User / Maszyna Hive). I naprawdę nie wiem nic o kluczu użytkowników root, a nie widziałem Użytkownika / ekspres gałąź. Czy ktoś może mnie oświecić na czym one są? Może mogliby rozwiązać mój problem powyżej.

Utwórz 03/08/2008 o 21:35
źródło użytkownik
W innych językach...                            


4 odpowiedzi

głosy
1

Jestem partway do mojego rozwiązania z tego wpisu na MSDN (nie wiem, jak ja nie mogłem go znaleźć wcześniej).

Użytkownik / maszynowe Hive
podklucze i wartości wpisane w tym ulu zostaną zainstalowane w gałęzi HKEY_CURRENT_USER, gdy użytkownik wybierze „Just Me” czy ula HKEY_USERS lub gdy użytkownik wybierze „każdy” w trakcie instalacji.

Edytor rejestru

Odpowiedział 03/08/2008 o 21:45
źródło użytkownik

głosy
5

Po pierwsze: Tak, to jest coś, co należy do Wniosku o dokładnie określonym reson: Co się dzieje po nowe profile użytkowników są tworzone? Oczywiście, jeśli używasz domeny jest możliwe, aby mieć jakiś materiał umieścić w rejestrze stworzenia, ale to naprawdę nie jest przypadek użycia. Wniosek powinien sprawdzić, czy istnieją seetings i jeśli nie korzystać z ustawień domyślnych.

Mając na uwadze powyższe, możliwe jest, aby zmienić Inni użytkownicy Keys przez HKEY_USERS ula.

Nie mam doświadczenia z Visual Studio 2003 projektu instalacji, więc tutaj jest trochę (całkowicie niezwiązanego) kod VBScript, że może po prostu dać ci pomysł, gdzie szukać:

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

(Kod uprzejmości Jeroen Ritmeijer )

Odpowiedział 03/08/2008 o 21:48
źródło użytkownik

głosy
5

Zgaduję, że ponieważ chcemy, aby ustawić go dla wszystkich użytkowników, że jesteś na jakimś wspólnym komputerze, który jest prawdopodobnie uruchomiony w domenie?

TUTAJ Be Dragons

Powiedzmy, że Joe i Jane regularnie logować się na komputerze, wtedy każdy z nich ma „rejestry”.

Będziesz wtedy zainstalować aplikację, a instalator będzie zatrudniać gigantyczne hacki i obrzydliwe rzeczy do określonych przedmiotów pod HKCU dla nich.

WTEDY, bob przyjdzie i zalogować się (on i 500 innych osób ma konta w domenie, a więc może to zrobić). Nigdy wcześniej nie korzystał z tego komputera, więc nie ma rejestru. Pierwszy raz loguje się, system Windows tworzy mu jednego, ale nie będzie miał swoje ustawienia.

Aplikacja następnie przewraca lub zachowuje się niewłaściwie, a Bob narzeka głośno o tych gównianych produktów raynixon włączone.

Prawidłowa odpowiedź to po prostu jakieś domyślne ustawienia w aplikacji, które można zapisać je do rejestru, jeśli nie je znaleźć. To ogólnie dobra praktyka, że ​​aplikacja nie powinna zależeć od rejestru i powinny tworzyć rzeczy w miarę potrzeb, dla każdego wpisu w rejestrze, a nie tylko HKCU, w każdym razie

Odpowiedział 03/08/2008 o 22:17
źródło użytkownik

głosy
1

Pomimo tego, co artykuł MSDN mówi o Użytkowniku / ekspres do ula, nie pisać do HKEY_USERS. Pisze raczej do HKCU przypadku wybrania tylko ja i HKLM przypadku wybrania każdego.

Więc moje rozwiązanie będzie używać Użytkownika / ekspres gałąź, a następnie w aplikacji sprawdza, czy wpisy w rejestrze są w HKCU, a jeśli nie, kopiuje je z HKLM. Wiem, że to chyba nie jest najbardziej idealny sposób to zrobić, ale ma najmniejszą ilość zmian.

Odpowiedział 03/08/2008 o 23:34
źródło użytkownik

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