Запись ключа реестра с NSIS не удается - PullRequest
0 голосов
/ 01 февраля 2019

У меня относительно простой NSIS-инсталлятор, которому нужно записать некоторые ключи в реестр.К сожалению, это не работает.Соответствующие части кода:

RequestExecutionLevel admin

Function .onInit
  WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" "" ""
FunctionEnd

Насколько я понимаю, .oninit вызывается в каждом случае?Тем не менее после выполнения .exe этого установщика я не вижу мой новый ключ "LocalDump".Что здесь может быть не так?

Спасибо!

1 Ответ

0 голосов
/ 01 февраля 2019

64-битная Windows имеет два «просмотра» реестра , и 32-битные приложения видят 32-битное представление по умолчанию.Вы можете использовать инструкцию SetRegView, чтобы заставить 32-битный установщик NSIS выполнить запись в 64-битное представление:

!include x64.nsh
!include LogicLib.nsh

Section
${If} ${RunningX64}
  SetRegView 64
  WriteRegStr ... value for 64-bit systems
  SetRegView LastUsed
${Else}
  WriteRegStr ... value for 32-bit systems
${EndIf}
SectionEnd

.onInit всегда выполняется, но вы не должны вносить изменения в систему.потому что пользователь может отменить установку.Вы должны выполнить большинство операций, связанных с установкой, в Section s.

...