4 Stimmen

NSIS: Kann nicht in die Registrierung schreiben (HKLM\Software\...) unter Windows 7

Ich bin gerade dabei, ein NSIS-Installations skript von XP auf Win7 zu aktualisieren. Aus unbekannten Gründen kann das Installationsprogramm unter Win7 nicht in die Registry schreiben, auch nicht als Administrator. Das eingebettete UAC-Manifest im Installationsprogramm ist so eingestellt, dass Administratorrechte erforderlich sind (indem RequestExecutionLevel admin im Skript angegeben wird). Außerdem habe ich versucht, mit der rechten Maustaste auf das Installationsprogramm zu klicken und Als Administrator ausführen auszuwählen. Das Deaktivieren der UAC im Betriebssystem behebt das Problem ebenfalls nicht.

Wenn ich das gleiche Installationsprogramm unter XP ausführe, wird der Registrierungsschlüssel wie vorgesehen geschrieben.

Ich habe mein Installations skript verkleinert, um das Problem zu isolieren:

!define APP_NAME      "MyTestApp"

Name                  "${APP_NAME}"
OutFile               "${APP_NAME} Setup.exe"

RequestExecutionLevel admin
Page instfiles

Section -Core
   SetDetailsView show 

   WriteRegStr HKLM "Software\XyzCompany\${APP_NAME}\Installation" "VersionString" "V0.0.0"

   SetAutoClose false
SectionEnd

Andererseits bin ich in der Lage, in eingeschränkte Ordner zu schreiben (z.B. C:\ProgramData) (hier hat standardmäßig nur der Administrator Schreibzugriff). Habe ich hier etwas wirklich Offensichtliches übersehen? Ich benutze NSIS 2.45.

5voto

Anders Punkte 89514

Verwenden Sie SetRegView, um den „echten“ HKLM\Software-Schlüssel auf x64 zu schreiben.

Verwenden Sie Process Monitor, um andere Probleme beim Schreiben in die Registrierung zu untersuchen...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X