2012-03-27 9 views
1

Mein Installationsprogramm benötigt Administratorrechte. Während der Installation werden einige Werte in die HKCU-Struktur der Registrierung des aktuell angemeldeten Benutzers geschrieben. Wenn es sich bei diesem Benutzerkonto jedoch um ein Standardkonto handelt, muss der Benutzer beim Start des Installationsprogramms Anmeldeinformationen für ein Administratorkonto angeben. Die Werte werden dann in den HKCU-Baum geschrieben, der zu diesem Administratorkonto gehört, anstelle der HKCU des aktuell angemeldeten Benutzers. Das gleiche Problem tritt auf, wenn das Installationsprogramm einige Daten in das lokale AppData schreiben möchte und eine Verknüpfung auf dem Desktop erstellen möchte.Wie kann ich mein Installationsprogramm in die HKCU-Registrierungsstruktur schreiben lassen?

Wie kann ich das umgehen?

+0

Wollen Sie sagen, dass das Installationsprogramm "Als Administrator ausführen" ausgeführt werden muss oder dass das Installationsprogramm selbst nach Anmeldeinformationen fragt, damit es sich als Administrator ausgeben kann? – ShiggityShiggityShwa

+0

@ShiggityShiggityShwa Das Installationsprogramm fordert zur Eingabe von Anmeldeinformationen auf, wenn der angemeldete Benutzer ein Standard-Windows-Konto ist. Wenn der angemeldete Benutzer ein Administratorkonto ist, wird die Eingabeaufforderung des UAC-Bildschirms angezeigt. – Dabblernl

+0

Für wen benötigen Sie Administratorrechte? – Anders

Antwort

1

Wenn Sie nach Administratorrechten fragen, bedeutet dies normalerweise, dass Sie eine systemweite/maschinelle Installation für alle Benutzer durchführen. Wenn Sie diesen Installationstyp erstellen, ist es nicht sinnvoll, in HKCU oder% USERPROFILE% zu schreiben, nicht nur, weil Sie am Ende Aktionen für "den falschen Benutzer" ausführen können, sondern Sie initialisieren auch die Installation nur für diesen einen Benutzer und nicht alle Benutzer.

Ich empfehle, dass Sie diese allgemeinen Daten zu HKLM\Software\YourCompany\YourApp\CommonData und/oder <CSIDL_COMMON_APPDATA|CSIDL_PROGRAM_FILES>\YourCompany\YourApp\CommonData schreiben und dann diese Daten in Ihre Anwendung importieren, wenn ein Benutzer das erste Mal ausführt.

Sie könnten auch in Erwägung ziehen, ein benutzerdefiniertes Installationsprogramm (wie Chrome) zu erstellen, aber das bedeutet, Sie können nur schreiben an HKCU und% USERPROFILE%!

2

Dies geschieht, weil Sie eine pro-Computer-Installation verwenden, die Daten an einem Benutzerstandort (HKEY_CURRENT_USER) schreibt.

Der richtige Ansatz besteht darin, entweder eine pro Benutzer Installation mit nur Benutzer-Standorten oder eine pro-Computer-Installation mit nur pro-Computer-Speicherorte (HKEY_LOCAL_MACHINE statt HKEY_CURRENT_USER) zu verwenden.