» Одеваем инсталлятор. SkinCrafter Plugin

K.A.V.
www.oszone.net
22.02.2010
Автор: K.A.V.
Последнее обновление: 22.02.2010

1. Качаем с этой странички "Unicode/ANSI NSIS SkinCrafter Plugin" (если скин не подгружается, попробуйте эту библиотеку), открываем загруженный архив, распаковываем библиотеку "NSIS_SkinCrafter_Plugin.dll" в каталог с плагинами NSIS (\Program Files\NSIS\Plugins)

2. Загружаем файл скина из библиотеки

3. Добавляем данный кусок кода в NSIS
Function .onInit
SetOutPath $TEMP
File /oname=TEST.skf "TEST.skf"
NSIS_SkinCrafter_Plugin::skin /NOUNLOAD "$TEMP\TEST.skf"
FunctionEnd


И не забудьте выгрузить SkinCrafter
Function .onGUIEnd
NSIS_SkinCrafter_Plugin::destroy
FunctionEnd


Для того, чтобы скин подгружался и в деинсталляторе, добавьте следующие функции
Function un.onInit
SetOutPath $TEMP
File /oname=TEST.skf "TEST.skf"
NSIS_SkinCrafter_Plugin::skin /NOUNLOAD "$TEMP\TEST.skf"
FunctionEnd

Function un.onGUIEnd
NSIS_SkinCrafter_Plugin::destroy
FunctionEnd


В данном коде предположено, что файл скина "TEST.skf" находится в одной папке с NSIS скриптом

Примечание.
На некоторых сборках ОС скин может не примениться, т.к. удалены некоторые библиотеки
Пока мной выявлена 1 DLL, без которой скины не подгружаются - mfc71.dll, она должна находиться в системной директории (System32)
Если вы не уверены, что данная библиотека присутствует в системе, то добавьте данную библиотеку в пакет инсталлятора и пропишите команду распаковки данной библиотеки в системный каталог ($SYSDIR) перед тем, как вызовите функцию загрузки скина
Можно конечно обойтись без распаковки библиотеки в системный каталог, для этого поместите mfc71.dll в одну директорию с пакетом инсталлятора