Visual Studio-Setup-Projekt - pro Benutzer-Registrierungseinstellungen

stimmen
16

Ich versuche , ein Setup - Projekt in halten Visual Studio 2003(ja, es ist eine Legacy - Anwendung). Das Problem , das wir im Moment haben , ist , dass wir Registry - Einträge schreiben müssen HKCUfür jeden Benutzer auf dem Computer. Sie müssen in der sein , HKCUanstatt , HKLMweil sie die Standard - Benutzereinstellungen, und sie ändern sich pro Benutzer. Mein Gefühl ist , dass

  1. Dies ist nicht möglich
  2. Das ist nicht etwas, das Installationsprogramm tun soll, aber etwas sollte die Anwendung (nach allem, was passiert, wenn ein Benutzerprofil erstellt wird, nach der Installation?) Tun.

Vor diesem Hintergrund mag ich noch so wenig wie möglich in der Anwendung ändern, so meine Frage ist, ist es möglich , Registry - Einträge für jeden Benutzer in einem hinzuzufügen Visual Studio 2003Setup - Projekt?

Und im Moment das Projekt listet fünf Registry Root - Schlüssel ( HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, und Benutzer / Maschine Hive). Ich weiß über die Benutzer Root - Schlüssel nicht wirklich etwas, und nicht Benutzer / Maschine Hive gesehen. Kann mir jemand auf aufklären , was sie sind? Vielleicht könnten sie mein Problem oben lösen.

Veröffentlicht am 03/08/2008 um 21:35
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
5

Ich vermute, dass, weil Sie es für alle Benutzer festlegen möchten, dass Sie sich auf eine Art von gemeinsam genutzten Computer sind, die wahrscheinlich unter einer Domäne ausgeführt wird?

Hier Drachen

Lassen Sie uns sagen, Joe und Jane regelmäßig am Computer anmelden auf, dann werden sie jeweils ‚Register‘ haben.

Sie werden dann Ihre App installieren und der Installer Riese Hacks und widerlich Dinge beschäftigen Elemente unter HKCU für sie zu setzen.

DANN, kommen bob entlang und melden Sie sich an (er und 500 andere Menschen haben Konten in der Domäne und so kann dies tun). Er diesen Computer nie benutzt, so hat er keine Registrierung. Das erste Mal, wenn er sich anmeldet, Fenster ihm schafft man, aber er wird nicht Ihre Einstellung haben.

Ihre App dann umfällt oder verhält sich falsch, und Bob klagt laut über jene crappy Produkte von raynixon aufgenommen.

Die richtige Antwort ist, nur einige Standardeinstellungen in der App haben, die sie in die Registrierung schreiben kann, wenn sie sie nicht finden. Es ist allgemein gute Praxis, dass Ihre Anwendung nie auf der Registrierung abhängig gemacht werden soll, und soll die Dinge schafft je nach Bedarf, für jeden Registrierungseintrag, nicht nur HKCU, sowieso

Beantwortet am 03/08/2008 um 22:17
quelle vom benutzer

stimmen
5

Erstens: Ja, das ist etwas, das für die genaue reson Sie angegeben in der Anwendung gehört: Was nach neuen Benutzer geschieht Profile erstellt werden? Sicher, wenn Sie eine Domain verwenden ist es möglich, ein paar Sachen in der Registrierung auf Schöpfung setzen haben, aber das ist nicht wirklich ein Anwendungsfall. Die Anwendung sollte prüfen, ob es seetings und verwenden Sie die Standardeinstellung ist, wenn nicht.

Davon abgesehen, ist es möglich, andere User Keys durch die Struktur HKEY_USERS zu ändern.

Ich habe keine Erfahrung mit dem Visual Studio 2003-Setup-Projekt, hier so ein bisschen (völlig unabhängig) VBScript-Code, die Ihnen vielleicht eine Idee nur geben, wo sie suchen:

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 mit freundlicher Genehmigung von Jeroen Ritmeijer )

Beantwortet am 03/08/2008 um 21:48
quelle vom benutzer

stimmen
1

Trotz allem , was der MSDN - Artikel sagt über Benutzer / Maschine Hive, es nicht zu HKEY_USERS schreiben. Vielmehr schreibt sie in HKCU , wenn Sie sich gerade und HKLM wählen , wenn Sie alle wählen.

Also meine Lösung sein wird, den Benutzer zu verwenden / Maschine Hive, und dann in der Anwendung überprüft, ob die Registrierungseinträge sind in HKCU und wenn nicht, kopiert sie aus HKLM. Ich weiß, dass dies wahrscheinlich nicht der ideale Weg, es zu tun, aber es hat die geringste Menge an Änderungen.

Beantwortet am 03/08/2008 um 23:34
quelle vom benutzer

stimmen
1

Ich bin teilweise auf meine Lösung mit diesem Eintrag auf MSDN (weiß nicht, wie ich es vorher nicht finden konnte).

Benutzer / Maschine Hive
Subkeys und Werte unter dieser Struktur eingegeben werden unter der Struktur HKEY_CURRENT_USER installiert werden , wenn ein Benutzer „Just Me“ wählt oder die Struktur HKEY_USERS oder wenn ein Benutzer wählt „Jeden“ während der Installation.

Registierungseditor

Beantwortet am 03/08/2008 um 21:45
quelle vom benutzer

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