Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用NSIS写入注册表项失败_Windows_Registry_Nsis_Registrykey - Fatal编程技术网

Windows 使用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之后,我没有看到我的新

我有一个相对简单的NSIS安装程序,需要将一些键写入注册表。不幸的是,这不起作用。相关代码部分包括:

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是的,的确。。。