Windows 使用NSIS写入注册表项失败
我有一个相对简单的NSIS安装程序,需要将一些键写入注册表。不幸的是,这不起作用。相关代码部分包括:Windows 使用NSIS写入注册表项失败,windows,registry,nsis,registrykey,Windows,Registry,Nsis,Registrykey,我有一个相对简单的NSIS安装程序,需要将一些键写入注册表。不幸的是,这不起作用。相关代码部分包括: RequestExecutionLevel admin Function .onInit WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" "" "" FunctionEnd 据我所知,.oninit在任何情况下都被调用?然而,在执行这个安装程序的.exe之后,我没有看到我的新
RequestExecutionLevel admin
Function .onInit
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" "" ""
FunctionEnd
据我所知,.oninit在任何情况下都被调用?然而,在执行这个安装程序的.exe之后,我没有看到我的新密钥LocalDump。这里可能出了什么问题
谢谢 默认情况下,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始终执行,但您不应该真正更改那里的系统,因为用户可能会取消安装。您应该在部分中执行大多数与安装相关的操作。64位Windows?@Anders是的,的确。。。