Толик Панков
hex_laden
............ .................. ................
October 2030
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

Толик Панков [userpic]
Преобразование REG-файла в код скрипта инсталлятора NSIS

Понадобилось тут добавить ключи из REG-файла в код своего инсталлятора на NSIS. Оказывается, все придумано до нас. Имеется утилита Reg2Nsis, которая этим и занимается.

Использование


reg2nsis REG-файл [ПАРАМЕТРЫ]
или
reg2nsis ключ_реестра [ПАРАМЕТРЫ]

Т.е. утилита может преобразовать в код NSIS, как содержимое REG-файла, так и данные непосредственно из реестра.

Параметры:
-r - обработать ключ реестра со всеми подключами, начиная с указанного. Срабатывает только если в качестве источника указан путь в реестре.
-o <файл> - код будет сохранен в указанный файл
Если вместо -o <файл> указать ключ -O, то код будет сохранен в файл с именем, аналогичным указанному REG-файлу, но с расширением .nsh

Без дополнительных параметров, код NSIS будет выведен на консоль (stdout)

Программа смотрит в настройки системы и автоматически преобразует стандартные системные пути в стандартные переменные NSIS. Например, встретившийся путь C:\Windows\ будет преобразован в $WINDIR\.

Это можно отключить, добавив в командной строке ключ -s.

При анализе REG-файла, программа распознает как добавление ключа/значения, что понятно, так и команду на его удаление.
Т.е. запись в REG-файле:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\oem-drv64]

будет преобразована в:

WriteRegStr HKEY_LOCAL_MACHINE "SYSTEM\CurrentControlSet\services\oem-drv64" "" ""
А запись:

[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\oem-drv64]

преобразуется в следующий код:

DeleteRegKey HKEY_LOCAL_MACHINE "SYSTEM\CurrentControlSet\services\oem-drv64"

Скачать


С официальной NSIS-wiki
Копия на mega.nz

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2020/11/04/preobrazovanie-reg-fajla-v-kod-skripta-installyatora-nsis/

Tags: , ,