2016-09-26 2 views
0

Я пытаюсь получить доступ к номеру версии узла в скрипте NSIS, чтобы узнать, нужно ли мне обновлять node.js или нет. Для этого я заметил, что ключ HKLM \ SOFTWARE \ Node.js \ ServerType содержит нужный мне номер.Не удается получить доступ к некоторым разделам реестра

Я пытался получить к нему доступ через:

ReadRegStr $0 HKLM "SOFTWARE\Node.js" ServerType 

Но это не работает, и $ 0 всегда пусто.

У меня есть странное поведение с помощью этих клавиш:

ReadRegStr $0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" CurrentVersion 

возвращает мне хорошую версию для Java JRE, НО когда я могу изменить его вручную в реестре, он не меняется, когда я бегу NSIS installer => У меня такое ощущение, что установщик не читает его по указанному мной пути (возможно, установщик в x86 и ОС в конфликте x64?).

Я немного потерял и не знаю, что делать дальше. У тебя есть идеи ?

ответ

0

В 64-разрядных версиях 32-разрядных приложений Windows см. Специальный 32-разрядный просмотр реестра, и это не то же самое, что вы видите в Regedit. В Regedit основой для этих ключей являются Wow6432Node. Некоторые ключи также разделяются обоими представлениями.

Для доступа к 64-битовому представлению в NSIS вы можете использовать инструкцию SetRegView.

+0

Точно, что я искал, спасибо большое. – Quadear

Смежные вопросы