Я делаю простой установщик NSIS на Win 10, и у меня возникают некоторые проблемы с функцией ReadRegStr
.ReadRegStr
возвращает пустую строку и устанавливает флаг ошибки, который означает, что значение не может быть найдено.Это значение определенно существует (оно было сделано мной) и имеет правильный тип REG_SZ.
Такое же поведение наблюдается даже с SOME другими ключами:
- ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ HKLM \ FooBar ( не работает )
- ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ HKLM \ Docker Inc. \ Docker \ 1.0 ( не работает )
- ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ HKLM \ Классы/.3gp ( работает )
- Программное обеспечение HKCU \ Python \ PythonCore \ 3.6 \ InstallPath ( работает )
Powershell находит значениябез каких-либо проблем.
PS C:\Users\Admin\test> Get-ItemProperty -Path HKLM:\SOFTWARE\FooBar
(default) : fb
Вот легкий nsi
скрипт, который я использую
OutFile "Installer.exe"
Var FOO_VAR
!include LogicLib.nsh
Section
ReadRegStr $FOO_VAR HKLM "SOFTWARE\FooBar" ""
${If} ${Errors}
MessageBox MB_OK "Value not found"
${Else}
MessageBox MB_OK "FooBar $FOO_VAR"
${EndIf}
SectionEnd
Все приведенные выше ключи имеют как минимум разрешение на чтение для каждого пользователя / установщика.Что еще может быть причиной этого?