24.07.2010 06:09
Продолжаем мучать "скромный" инсталляционный пакет NSIS. На этот раз тема о улучшенном интерфейсе (до интерфейса Inno он все равно не дотягивает, но уже лучше, чем было). Начнем с того, что данный интерфейс появился в версии 2.0 и называется Modern User Interface. Пример "нового" интерфейса можно увидеть на рисунке ниже.
Мда, просто великолепно :) Но не в этом дело. С помощью того же редактора скриптов его можно улучшить. Но для начала надо разобраться как вообще заставить включиться улучшенный интерфейс. Текст получился немного длиннее, чем в первом примере, поскольку включает в себя дополнительно выбор элементов для установки, функцию Uninstall и возможность запоминания каталога установки в реестре Windows. Как и предыдущий пример, этот представляет собой немного измененный скрипт, идущий в комплекте с NSIS (ExamplesModern UIBasic.nsi):

1.!include "MUI.nsh"
2.Name "Пример 2"
3.OutFile "Пример2.exe"
4.InstallDir "$2"
5.InstallDirRegKey HKCU "SoftwareSample2" ""
6.!define MUI_ABORTWARNING
7.!insertmacro MUI_PAGE_LICENSE "text.txt"
8.!insertmacro MUI_PAGE_COMPONENTS
9.!insertmacro MUI_PAGE_DIRECTORY
10.!insertmacro MUI_PAGE_INSTFILES
11.!insertmacro MUI_UNPAGE_CONFIRM
12.!insertmacro MUI_UNPAGE_INSTFILES
13.!insertmacro MUI_LANGUAGE "Russian"
14.Section "Пустая секция" SecDummy
15.SetOutPath "$"
16.File example.exe
17.WriteRegStr HKCU "SoftwareSample2" "" $
18.WriteUninstaller "$.exe"
19.SectionEnd
20.LangString DESC_SecDummy $LANG_ENGLISH} "Тестовая секция."
21.!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
22.!insertmacro MUI_DESCRIPTION_TEXT $SecDummy} $DESC_SecDummy)
23.!insertmacro MUI_FUNCTION_DESCRIPTION_END
24.Section "Uninstall"
25.Delete "$.exe"
26.Delete "$.exe"
27.RMDir "$"
28.DeleteRegKey /ifempty HKCU "SoftwareSample2"
29.SectionEnd.
Теперь изучим полученный материал. В первой строке мы подключаем наш улучшенный интерфейс. Предназначение второй, третьей и четвертой строки нам известны по первому примеру. Пятая, семнадцатая и двадцать восьмая строки ответственны за чтение, запоминание и удаление информации о пути к устанавливаемой программе в реестре Windows. Строчки с шестой по двенадцатую определяют внешний вид инсталлятора - наличие страниц диалогового мастера установки. Я думаю, какая строчка за какое окно отвечает, комментировать не нужно;) С четырнадцатой по девятнадцатую идут строки, описывающие единственную секцию с компонентами устанавливаемого приложения. Таких секций может быть несколько с различным набором файлов в них. Двадцатая - двадцать третья строчки - это подстановка описаний секций для связи с пунктами выбора устанавливаемых компонентов. Описания появляются в инсталляторе при наведении курсора мышки на соответствующий компонент. Поскольку у нас только одна секция, то и в тексте присутствует только одно описание "Тестовая секция". С двадцать четвертой строки и до конца скрипта идет описание действий в случае удаления программы, запуском uninstall.exe. При этом последовательно удаляется само установленное приложение - example.exe, затем Uninstall.exe, каталог программы и ключ в реестре, указывающий на каталог установки. На этом все. Если вас не устраивает и данный интерфейс, то вы можете сделать свой...например с помощью утилиты-плагина NSIS Skincrafter plugin , который вы легко сможете найти в сети сами;)



