Nowoczesny interfejs użytkownika

Ten dokument zgodny jest z NSIS 3.1


1. Wprowadzenie

Nowoczesny interfejs użytkownika (Modern UI) jest interfejsem użytkownika dla instalatorów NSIS. Interfejs zaprojektowany jest w stylu kreatorów najnowszych wersji Windows. Oparty jest na podstawowym interfejsie użytkownika, który wbudowany jest w NSIS, rozszerzając jego możliwości o nowe funkcjonalności oraz dodatkowe strony.

Wszystkie standardowe strony NSIS (takie jak strona wyboru komponentów do zainstalowania oraz katalogu instalacji) są także obsługiwane, jak wiele innych. Strona powitalna wprowadza użytkownika w proces instalacji, strona końcowa umożliwia użytkownikowi podjęcie określonych akcji po zamknięciu instalatora (np. czy program powinien być uruchomiony tuż po zamknięciu instalatora). Strona końcowa może być również użyta do zapytania o ponowne uruchomienie komputera, jeśli jest to wymagane.




2. Nowoczesny interfejs użytkownika 2.0

Nowa wersja nowoczesnego interfejsu użytkownika umożliwia jeszcze prostsze tworzenie stron. Dzieje się tak, ponieważ ta sama metoda może być użyta do zmiany standardowych stron NSIS, jak i do tworzenia nowych stron nowoczesnego interfejsu użytkownika. Możliwe jest teraz również dodanie nowych stron poprzez wtyczki NSIS. Wkrótce dostępne będą przykłady jak to zrobić.

Strony powitalna oraz końcowa nie są już tworzone przy użyciu wtyczki InstallOptions. Używana jest teraz nowa wtyczka nsDialogs. Wtyczka nsDialogs pozwala na tworzenie niestandardowych stron lub dostosowywanie istniejących stron bezpośrednio poprzez skrypt.

Aby zaktualizować skrypt zgodny z nowoczesnym interfejsem użytkownika w wersji 1.8 do wersji 2.0:

  • Zamień deklarację pliku nagłówkowego MUI.nsh na nowy - MUI2.nsh.
  • Makra wtyczki InstallOptions zostały przesunięte do oddzielnego pliku nagłówkowego, niezależnego od nowoczesnego interfejsu użytkownika. Jeśli do tworzenia niestandardowych stron wciąż używasz wtyczki InstallOptions, wstaw deklarację pliku nagłówkowego InstallOptions.nsh i użyj zestawu makr INSTALLOPTIONS_*, zamiast zestawu makr MUI_INSTALLOPTIONS_*. Same makra nie zmieniły się.
  • Przepisz kod strony powitalnej i końcowej zgodny z wersją 1.8, który używa plików INI. Powinieneś użyć funkcji wtyczki nsDialogs.
  • Użyj standardowej metody NSIS, dla znaków modyfikacji we wszystkich tekstach. Na przykład znaki $\r$\n tworzą nową linię.

3. Nagłówek skryptu

Ustawienia dla nowoczesnego interfejsu powinny być wstawione na początku pliku skryptu. Ważnym jest, aby elementy te były w odpowiedniej, poniższej kolejności. Na przykład, ustawienia interfejsu powinny być zdefiniowane przed wstawieniem kodu stron, ponieważ strony zależą od konfiguracji interfejsu. Warto zajrzeć do działu Przykładowe skrypty. Zobaczysz jak jest to zrobione w bieżących plikach skryptów.

Parametry przekazywane są w następującym porządku:

Wymagany_Parametr (Opcja1 | Opcja2) [Opcjonalny_Parametr]

3.1 Plik nagłówkowy


Aby dodać obsługę nowoczesnego interfejsu użytkownika, dodaj poniższą linię na początku skryptu:

!include MUI2.nsh

3.2 Konfiguracja interfejsu


Kolejnym krokiem jest ustawienie opcji interfejsu użytkownika. Opcje te mają wpływ na wszystkie strony.

Ustawienia interfejsu dostarczane przez kompilator NSIS (takie jak LicenseText, Icon, CheckBitmap, InstallColors) nie powinny być używane w skryptach, które korzystają z nowoczesnego interfejsu użytkownika. Nowoczesny interfejs użytkownika dostarcza porównywalne opcje lub ich rozszerzone wersje.

Przykłady:

!define MUI_COMPONENTSPAGE_SMALLDESC ; Brak wartości
!define MUI_UI "myUI.exe" ; Wartość
!define MUI_INSTFILESPAGE_COLORS "FFFFFF 000000" ; Dwa kolory

Ustawienia interfejsu


Nagłówek strony


  • MUI_ICON plik_ikony

    Ikona instalatora.
    Domyślnie: ${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico

  • MUI_UNICON plik_ikony

    Ikona deinstalatora.
    Domyślnie: ${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico

  • MUI_HEADERIMAGE

    Wyświetla obrazek w nagłówku strony.

    • MUI_HEADERIMAGE_BITMAP plik_bmp

      Obrazek mapy bitowej, wyświetlanej w nagłówku stron instalatora (zalecany rozmiar: 150x57 pikseli).
      Domyślnie: ${NSISDIR}\Contrib\Graphics\Header\nsis.bmp


      • MUI_HEADERIMAGE_BITMAP_STRETCH tryb
        • FitControl (Domyślny)

          Obrazek mapy bitowej dopasowywany jest do rozmiaru kontrolki obrazu.

        • NoStretchNoCropNoAlign

          Obrazek mapy bitowej nie jest dopasowywany do rozmiaru kontrolki obrazu. Nie powinieneś używać tej opcji, gdy używasz obrazka mapy bitowej, którego rozmiar równy jest rozmiarowi kontrolki obrazu, ponieważ rozmiar tej kontrolki jest inny, jeśli użytkownik używa niestandardowego ustawienia DPI lub gdy instalator używa języka CJK.

        • NoStretchNoCrop

          Opcja ta jest podobna do opcji NoStretchNoCropNoAlign, ale obrazek mapy bitowej zostanie dopasowany do prawej krawędzi kontrolki obrazka, jeśli używany jest język RTL lub zdefiniowany jest symbol MUI_HEADERIMAGE_RIGHT.

        • AspectFitHeight

          Obrazek mapy bitowej skalowany jest do rozmiaru kontrolki obrazu przy zachowaniu proporcji obrazka.

      • MUI_HEADERIMAGE_BITMAP_RTL plik_bmp

        Obrazek mapy bitowej wyświetlany w nagłówku stron instalatora, gdy używasz języka RTL (rekomendowany rozmiar: 150x57 pikseli).
        Domyślnie: Mapa bitowa wyświetlana po lewej stronie

        MUI_HEADERIMAGE_BITMAP_RTL_STRETCH tryb

        Lista dostępnych trybów dopasowania dostępna jest przy opisie opcji MUI_HEADERIMAGE_BITMAP_STRETCH.

    • MUI_HEADERIMAGE_UNBITMAP plik_bmp

      Obrazek mapy bitowej wyświetlany w nagłówku stron deinstalatora (zalecany rozmiar: 150x57 pikseli).
      Domyślnie: Mapa bitowa wyświetlana w nagłówku deinstalatora

      • MUI_HEADERIMAGE_UNBITMAP_STRETCH tryb

        Lista dostępnych trybów dopasowania dostępna jest przy opisie opcji MUI_HEADERIMAGE_BITMAP_STRETCH.

      • MUI_HEADERIMAGE_UNBITMAP_RTL plik_bmp

        Obrazek mapy bitowej wyświetlany w nagłówku stron deinstalatora, gdy używasz języka RTL (rekomendowany rozmiar: 150x57 pikseli).
        Domyślnie: Mapa bitowa wyświetlana po lewej stronie w nagłówku deinstalatora

        MUI_HEADERIMAGE_UNBITMAP_RTL_STRETCH tryb

        Lista dostępnych trybów dopasowania dostępna jest przy opisie opcji MUI_HEADERIMAGE_BITMAP_STRETCH.

    • MUI_HEADERIMAGE_RIGHT

      Wyświetla obrazek po prawej stronie nagłówka (używając języka RTL, obrazek będzie wyświetlany po jego lewej stronie).

  • MUI_BGCOLOR (Szesnastkowa wartość koloru: RRGGBB)

    Kolor tła dla nagłówka, strony powitalnej oraz strony końcowej.
    Domyślnie: FFFFFF

  • MUI_HEADER_TRANSPARENT_TEXT

    Ustawia przezroczyste tło dla kontrolek etykiety nagłówka. Użyteczne dla niestandardowych interfejsów użytkownika, które ustawiają większy obrazek nagłówka.


Zasoby interfejsu


  • MUI_UI plik_ui

    Plik interfejsu z zasobami okna dialogowego. Zmień go, jeśli stworzyłeś swój własny interfejs.
    Domyślnie: ${NSISDIR}\Contrib\UIs\modern.exe

  • MUI_UI_HEADERIMAGE plik_ui

    Plik interfejsu z zasobami okna dialogowego IDD_INST, które zawiera kontrolkę mapy bitowej oraz przestrzeń na mapę bitową w nagłówku.
    Domyślnie: ${NSISDIR}\Contrib\UIs\modern_headerbmp.exe

  • MUI_UI_HEADERIMAGE_RIGHT plik_ui

    Plik interfejsu z zasobami okna dialogowego IDD_INST, który zawiera kontrolkę mapy bitowej oraz miejsce na mapę bitową w nagłówku po prawej stronie.
    Domyślnie: ${NSISDIR}\Contrib\UIs\modern_headerbmpr.exe

  • MUI_UI_COMPONENTSPAGE_SMALLDESC plik_ui

    Plik interfejsu z zasobami okna dialogowego IDD_SELCOM z małym obszarem opisowym.
    Domyślnie: ${NSISDIR}\Contrib\UIs\modern_smalldesc.exe

  • MUI_UI_COMPONENTSPAGE_NODESC ui_file

    Plik interfejsu z zasobami okna dialogowego IDD_SELCOM bez obszaru opisowego.
    Domyślnie: ${NSISDIR}\Contrib\UIs\modern_nodesc.exe


Strona powitalna/końcowa instalatora


  • MUI_WELCOMEFINISHPAGE_BITMAP plik_bmp

    Obrazek mapy bitowej strony powitalnej oraz strony końcowej instalatora (rekomendowany rozmiar: 164x314 pikseli).
    Domyślnie: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

    • MUI_WELCOMEFINISHPAGE_BITMAP_STRETCH tryb

      Lista dostępnych trybów dopasowania dostępna jest przy opisie opcji MUI_HEADERIMAGE_BITMAP_STRETCH.


Strona powitalna/końcowa deinstalatora


  • MUI_UNWELCOMEFINISHPAGE_BITMAP plik_bmp

    Obrazek mapy bitowej strony powitalnej oraz strony końcowej deinstalatora (rekomendowany rozmiar: 164x314 pikseli).
    Domyślnie: ${NSISDIR}\Contrib\Graphics\Wizard\win.bmp

    • MUI_UNWELCOMEFINISHPAGE_BITMAP_STRETCH tryb

      Lista dostępnych trybów dopasowania dostępna jest przy opisie opcji MUI_HEADERIMAGE_BITMAP_STRETCH.


Strona z postanowieniami licencji


  • MUI_LICENSEPAGE_BGCOLOR (/windows | /grey | (Szesnastkowa wartość koloru: RRGGBB))

    Kolor tła dla pola tekstowego licencji. Użyj parametru /windows dla koloru tła tekstu Windows (zazwyczaj biały). Użyj parametru /grey dla koloru tła okna (zazwyczaj szary).
    Domyślnie: /windows


Strona wyboru komponentów instalacji


  • MUI_COMPONENTSPAGE_CHECKBITMAP plik_bitmapy

    Obrazek mapy bitowej zawierający znaki akceptacji, wyświetlana na drzewie wyboru składników.
    Domyślnie: ${NSISDIR}\Contrib\Graphics\Checks\modern.bmp

  • MUI_COMPONENTSPAGE_SMALLDESC

    Mały obszar opisu na dole strony. Interfejs ten zaleca się używać, jeśli instalator ma dużo sekcji i nie ma potrzeby używania rozbudowanych opisów.

  • MUI_COMPONENTSPAGE_NODESC

    Brak obszaru opisowego.


Strona wyboru katalogu docelowego instalacji


  • MUI_DIRECTORYPAGE_BGCOLOR (Szesnastkowa wartość koloru: RRGGBB)

    Kolor tła kontrolki tekstowej wybranego katalogu docelowego instalacji.


Strona wyboru katalogu Menu Start


  • MUI_STARTMENUPAGE_BGCOLOR (Szesnastkowa wartość koloru: RRGGBB)

    Kolor tła kontrolki listy katalogów Menu Start oraz kontrolki tekstowej wybranego katalogu.


Strona instalacji komponentów


  • MUI_INSTFILESPAGE_COLORS (/windows | (Szesnastkowa wartość koloru: RRGGBB) (Szesnastkowa wartość koloru tła: RRGGBB))

    Kolory ekranu strony z dziennikiem instalacji. Użyj parametru /windows dla domyślnych kolorów Windows.
    Domyślnie: /windows

  • MUI_INSTFILESPAGE_PROGRESSBAR ("" | colored | smooth)

    Styl paska postępu. Styl colored sprawia, że używana jest definicja MUI_INSTALLCOLORS.
    Domyślnie: smooth


Strona końcowa instalatora


  • MUI_FINISHPAGE_NOAUTOCLOSE

    Nie przeskakuje automatycznie do strony końcowej, co pozwala użytkownikowi na sprawdzenie dziennika postępu instalacji.


Strona końcowa deinstalatora


  • MUI_UNFINISHPAGE_NOAUTOCLOSE

    Nie przeskakuje automatycznie do strony końcowej, co pozwala użytkownikowi na sprawdzenie dziennika postępu deinstalacji.


Komunikat o przerwaniu instalacji


  • MUI_ABORTWARNING

    Wyświetla okno komunikatu z ostrzeżeniem, gdy użytkownik chce zamknąć instalatora.

    • MUI_ABORTWARNING_TEXT tekst

      Tekst wyświetlany w oknie komunikatu, który ostrzega przed przerwaniem instalacji.

    • MUI_ABORTWARNING_CANCEL_DEFAULT

      Ustawia przycisk 'Anuluj', jako domyślny przycisk w oknie komunikatu.


Komunikat o przerwaniu deinstalacji


  • MUI_UNABORTWARNING

    Wyświetla okno komunikatu z ostrzeżeniem, gdy użytkownik chce zamknąć deinstalatora.

    • MUI_UNABORTWARNING_TEXT tekst

      Tekst wyświetlany w oknie komunikatu, który ostrzega przed przerwaniem deinstalacji.

    • MUI_UNABORTWARNING_CANCEL_DEFAULT

      Ustawia przycisk 'Anuluj', jako domyślny przycisk w oknie komunikatu.


3.3 Strony


Wstaw poniższe makra, aby ustawić strony, które chcesz użyć. Strony zostaną wyświetlone w kolejności, w jakiej zostały zapisane w skrypcie. Aby dodać niestandardowe strony, wstaw polecenia niestandardowych stron pomiędzy tymi makrami.

Możesz dodać wiele stron określonego typu (na przykład, jeśli chcesz, aby użytkownik wybrał kilka katalogów).

Przykłady:

!insertmacro MUI_PAGE_LICENSE "Plik_Licencji.rtf"
!insertmacro MUI_PAGE_COMPONENTS

Var StartMenuFolder
!insertmacro MUI_PAGE_STARTMENU "Application" $StartMenuFolder

Używając makra Menu Start, będziesz potrzebował numeru ID strony dla strony wyboru katalogu w Menu Start. Katalog ten będzie przechowywany w określonej zmiennej.


Strony instalatora

  • MUI_PAGE_WELCOME
  • MUI_PAGE_LICENSE plik_tekstowy
  • MUI_PAGE_COMPONENTS
  • MUI_PAGE_DIRECTORY
  • MUI_PAGE_STARTMENU zmienna ID_strony
  • MUI_PAGE_INSTFILES
  • MUI_PAGE_FINISH

Strony deinstalatora

  • MUI_UNPAGE_WELCOME
  • MUI_UNPAGE_CONFIRM
  • MUI_UNPAGE_LICENSE plik_tekstowy
  • MUI_UNPAGE_COMPONENTS
  • MUI_UNPAGE_DIRECTORY
  • MUI_UNPAGE_INSTFILES
  • MUI_UNPAGE_FINISH

Ustawienia strony


Ustawienia strony odnoszą się do pojedynczej strony i powinny być ustawiane przed wstawianiem makra strony. Te same ustawienia mogą być użyte zarówno dla instalatora, jak i dla deintalatora. Musisz powtórzyć ustawienia, jeśli chcesz zastosować je dla wielu stron. Przykład:

; Dodaj stronę wyboru katalogu, aby użytkownik mógł określić katalog wtyczek
; Przechowaj katalog w zmiennej $PluginsFolder

Var PLUGINS_FOLDER
!define MUI_DIRECTORYPAGE_VARIABLE $PluginsFolder
!insertmacro MUI_PAGE_DIRECTORY

Wszystkie standardowe teksty interfejsu użytkownika wczytywane są z plików językowych, dla wszystkich obsługiwanych języków NSIS. Musisz więc tylko zdefiniować te teksty, jeśli chcesz zmienić ich domyślne wartości.

Jeśli parametrem jest tekst, który powinien być inny dla każdego z języków, zdefiniuj łańcuch znaków języka, używając polecenia LangString i użyj zmiennej $(LangStringName) jako wartości. Dla tekstu licencji w instalacji wielojęzykowej, możesz użyć LicenseLangString. Więcej informacji o instalatorach wielojęzykowych znajdziesz w podręczniku użytkownika.

We wszystkich ustawieniach tekstu, znak (") powinien być poprzedzony znakami modyfikacji w następującej formie: $\"


Ustawienia strony ogólnej


  • MUI_PAGE_HEADER_TEXT tekst

    Tekst wyświetlany w nagłówku strony.

  • MUI_PAGE_HEADER_SUBTEXT tekst

    Podtekst wyświetlany w nagłówku strony.


Ustawienia strony powitalnej


  • MUI_WELCOMEPAGE_TITLE tytuł

    Tekst tytułowy wyświetlany na górze strony.

  • MUI_WELCOMEPAGE_TITLE_3LINES

    Dodatkowe miejsce na obszar tytułu.

  • MUI_WELCOMEPAGE_TEXT tekst

    Tekst wyświetlany na stronie.


Ustawienia strony z licencją użytkownika


  • MUI_LICENSEPAGE_TEXT_TOP tekst

    Tekst wyświetlany na górze strony.

  • MUI_LICENSEPAGE_TEXT_BOTTOM tekst

    Tekst wyświetlany na dole strony.

  • MUI_LICENSEPAGE_BUTTON tekst_przycisku

    Tekst wyświetlany na przycisku 'Zgadzam się'.

  • MUI_LICENSEPAGE_CHECKBOX

    Wyświetla pole wyboru, które użytkownik musi zaznaczyć, aby zaakceptować postanowienia licencji.

    • MUI_LICENSEPAGE_CHECKBOX_TEXT tekst

      Tekst wyświetlany obok pola wyboru zgody z postanowieniami licencji.

  • MUI_LICENSEPAGE_RADIOBUTTONS

    Wyświetla dwa przyciski typu radio, aby użytkownik mógł zaakceptować postanowienia licencji.

    • MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT tekst

      Tekst wyświetlany obok pola wyboru potwierdzania postanowień licencji.

    • MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE tekst

      Tekst wyświetlany obok pola wyboru odrzucania postanowień licencji.


Ustawienia strony wyboru komponentów


  • MUI_COMPONENTSPAGE_TEXT_TOP tekst

    Tekst wyświetlany na górze strony.

  • MUI_COMPONENTSPAGE_TEXT_COMPLIST tekst

    Tekst wyświetlany obok listy komponentów do zainstalowania.

  • MUI_COMPONENTSPAGE_TEXT_INSTTYPE tekst

    Tekst wyświetlany obok pola kombinowanego typu instalacji.

  • MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE tekst

    Tekst wyświetlany na górze obszaru opisów instalowanych komponentów.

  • MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO tekst

    Tekst wyświetlany w obszarze pola opisów, gdy żadna z sekcji nie jest zaznaczona.


Ustawienia strony wyboru katalogu docelowego


  • MUI_DIRECTORYPAGE_TEXT_TOP tekst

    Tekst wyświetlany na górze strony.

  • MUI_DIRECTORYPAGE_TEXT_DESTINATION tekst

    Tekst wyświetlany na ramce kontrolki katalogu docelowego.

  • MUI_DIRECTORYPAGE_VARIABLE zmienna

    Zmienna, w której przechowywany jest wybrany katalog.
    Domyślnie: $INSTDIR

  • MUI_DIRECTORYPAGE_VERIFYONLEAVE

    Nie deaktywuje przycisku 'Dalej', gdy wybrany katalog jest nieprawidłowy. Pozwala jednak na użycie polecenia GetInstDirError w funkcji wyjścia, aby pobrać nieprawidłowy katalog.


Ustawienia strony wyboru katalogu Menu Start


  • MUI_STARTMENUPAGE_TEXT_TOP tekst

    Tekst wyświetlany na górze strony.

  • MUI_STARTMENUPAGE_TEXT_CHECKBOX tekst

    Tekst wyświetlany obok pola wyboru do wyłączania tworzenia katalogów Menu Start.

  • MUI_STARTMENUPAGE_DEFAULTFOLDER katalog

    Domyślny katalog Menu Start.

  • MUI_STARTMENUPAGE_NODISABLE

    Nie wyświetlaj pola wyboru, do wyłączania tworzenia skrótów w Menu Start.

  • MUI_STARTMENUPAGE_REGISTRY_ROOT klucz root
    MUI_STARTMENUPAGE_REGISTRY_KEY klucz
    MUI_STARTMENUPAGE_REGISTRY_VALUENAME nazwa_wartości

    Klucz rejestru do przechowywania katalogu Menu Start. Strona użyje tych danych, aby zapamiętać preferencje użytkownika. Powinieneś użyć go również w deinstalatorze, aby usunąć katalogi Menu Start. Nie zapomnij usunąć tego klucza podczas deinstalacji.

    Dla deinstalatora, użyj makra MUI_STARTMENU_GETFOLDER, aby pobrać katalog Menu Start:

    !insertmacro MUI_STARTMENU_GETFOLDER page_id $R0
      Delete "$SMPROGRAMS\$R0\Twój skrót.lnk"
    

Ustawienia strony instalacji


  • MUI_INSTFILESPAGE_FINISHHEADER_TEXT tekst

    Tekst wyświetlany w nagłówku strony instalacji, gdy instalacja została zakończona (nie będzie wyświetlany, gdy używasz strony końcowej bez MUI_(UN)FINISHPAGE_NOAUTOCLOSE).

  • MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT tekst

    Podtekst wyświetlany w nagłówku strony instalacji, gdy instalacja została zakończona (nie zostanie wyświetlonym, gdy używasz strony końcowej bez MUI_(UN)FINISHPAGE_NOAUTOCLOSE).

  • MUI_INSTFILESPAGE_ABORTHEADER_TEXT tekst

    Tekst wyświetlany w nagłówku strony instalacji, gdy instalacja została przerwana.

  • MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT tekst

    Podtekst wyświetlany w nagłówku strony instalacji, gdy instalacja została przerwana.


Ustawienia strony końcowej


  • MUI_FINISHPAGE_TITLE tytuł

    Tekst tytułowy wyświetlany na górze strony.

  • MUI_FINISHPAGE_TITLE_3LINES

    Dodatkowe miejsce na obszar tytułu.

  • MUI_FINISHPAGE_TEXT tekst

    Tekst wyświetlany na stronie.

  • MUI_FINISHPAGE_TEXT_LARGE

    Dodatkowe miejsce dla obszaru tekstu (jeśli używasz pól wyboru).

  • MUI_FINISHPAGE_BUTTON tekst

    Tekst wyświetlany na przycisku 'Zakończ'.

  • MUI_FINISHPAGE_CANCEL_ENABLED

    Włącza przycisk 'Anuluj', dzięki czemu użytkownik może pominąć opcje wyświetlane na końcowej stronie.

  • MUI_FINISHPAGE_TEXT_REBOOT tekst

    Tekst wyświetlany na końcowej stronie, przy zapytaniu o ponowny rozruch komputera.

  • MUI_FINISHPAGE_TEXT_REBOOTNOW tekst

    Tekst wyświetlany obok przycisku opcji 'Uruchom ponownie teraz'.

  • MUI_FINISHPAGE_TEXT_REBOOTLATER tekst

    Tekst wyświetlany obok przycisku opcji 'Sam uruchomię ponownie komputer później'.

  • MUI_FINISHPAGE_REBOOTLATER_DEFAULT

    Ustawia opcję 'Sam uruchomię ponownie komputer później' opcją domyślną.

  • MUI_FINISHPAGE_RUN plik_exe

    Program, który użytkownik może uruchomić, zaznaczając pole wyboru. Nie musisz wstawiać znaków cudzysłowia w nazwie pliku, jeśli zawiera ona spacje.

    • MUI_FINISHPAGE_RUN_TEXT tekst

      Tekst wyświetlany obok pla wyboru 'Uruchom program'.

    • MUI_FINISHPAGE_RUN_PARAMETERS parametry

      Parametry dla aplikacji do uruchomienia. Nie zapomnij o użyciu znaku modyfikacji $\".

    • MUI_FINISHPAGE_RUN_NOTCHECKED

      Nie zaznaczaj domyślnie pola wyboru 'Uruchom program'

    • MUI_FINISHPAGE_RUN_FUNCTION nazwa_funkcji

      Wywołuje funkcję zamiast wykonania aplikacji (zdefiniuj MUI_FINISHPAGE_RUN bez parametrów). Możesz użyć funkcji do uruchomienia wielu aplikacji lub możesz zmienić nazwę pola wyboru i użyć go do innych celów.

  • MUI_FINISHPAGE_SHOWREADME plik/adres_url

    Plik lub strona internetowa, którą użytkownik może otworzyć, po zaznaczeniu pola wyboru. Nie musisz wstawiać znaków cudzysłowia w nazwie pliku, jeśli zawiera ona spacje.

    • MUI_FINISHPAGE_SHOWREADME_TEXT tekst

      Tekst do wyswietlenia obok pola wyboru 'Pokaż plik Readme'.

    • MUI_FINISHPAGE_SHOWREADME_NOTCHECKED

      Nie zaznaczaj domyślnie pola wyboru 'Pokaż plik Readme'

    • MUI_FINISHPAGE_SHOWREADME_FUNCTION nazwa_funkcji

      Wywołuje funkcję, zamiast wyświetlania pliku (zdefiniuj MUI_FINISHPAGE_SHOWREADME bez parametrów). Możesz użyć funkcji, aby wyświetlić wiele plików lub możesz zmienić nazwę pola wyboru i użyć go do innych celów.

  • MUI_FINISHPAGE_LINK tekst_łącza

    Tekst dla łącza, które użytkownik może kliknąć, aby zobaczyć stronę internetową lub plik.

    • MUI_FINISHPAGE_LINK_LOCATION plik/adres_url

      Strona internetowa lub plik, który użytkownik może wybrać, aby go otworzyć dzięki łączu. Nie musisz wstawiać znaków cudzysłowia w nazwie pliku, jeśli zawiera ona spacje.

    • MUI_FINISHPAGE_LINK_COLOR (Szesnastkowa wartość koloru: RRGGBB)

      Kolor tekstu dla łącza na stronie końcowej.
      Domyślnie: 000080

  • MUI_FINISHPAGE_NOREBOOTSUPPORT

    Wyłącza wsparcie dla stron, które umożliwiają użytkownikowi na uruchamianie ponowne komputera. Zdefiniuj tę opcję, aby zachować trochę miejsca, jeśli nie używasz flag /REBOOTOK lub SetRebootFlag.


Ustawienia strony potwierdzenia deinstalacji


  • MUI_UNCONFIRMPAGE_TEXT_TOP tekst

    Tekst wyświetlany na górze strony.

  • MUI_UNCONFIRMPAGE_TEXT_LOCATION tekst

    Tekst wyświetlany obok pola tekstu lokalizacji deinstalacji.


3.4 Pliki językowe


Wstaw pliki językowe interfejsu nowoczesnego Modern UI dla języków, które chcesz dołączyć.

!insertmacro MUI_LANGUAGE "Polish"

Standardowe pliki językowe NSIS wczytywane są automatycznie, nie powinieneś zatem używać funkcji LoadLanguageFile.


3.5 Rezerwacja plików


Jeśli używasz kompresji typu Solid, pliki które są potrzebne jeszcze przed instalacją, powinny być przechowywane na górze bloku danych. Dzięki temu instalator jest szybciej uruchamiany. Dołącz polecenie rezerwacji plików przed sekcjami oraz funkcjami:

ReserveFile /plugin Moja_Wtyczka.dll
!insertmacro MUI_RESERVEFILE_LANGDLL ; Okno dialogowe wyboru języka
...

4. Kod skryptu stron

Niektóre strony pozwalają na wyświetlanie dodatkowych informacji lub mogą przyjmować dane użytkownika. Poniżesz znajdziesz przykładowy kod wykorzystania tej funkcjonalności.

4.1 Opisy sekcji na stronie wyboru komponentów


Strona wyboru komponentów nowowczesnego interfejsu użytkownika posiada kontrolkę tekstową, w której wyświetlony może być tekst z opisem poszczególnych komponentów. Pojawia się on po najechaniu kursorem myszki nad danym komponentem. Jeśli nie chcesz widzieć opisów, ustaw opcję MUI_COMPONENTSPAGE_NODESC.

Aby ustawić opis dla sekcji, do polecenia sekcji Section dodany musi być dodatkowy parametr identyfikujacy tę sekcję. Nazwa ta może być użyta do ustawienia opisu sekcji.

Section "Section Nazwa 1" Sekcja1
   ...
SectionEnd

Po zdefiniowaniu sekcji, użyj poniższych makr, aby ustawić opisy tych sekcji:

LangString DESC_Sekcja1 ${LANG_POLISH} "Opis dla sekcji 1."
LangString DESC_Sekcja2 ${LANG_POLISH} "Opis dla sekcji 2."

!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  !insertmacro MUI_DESCRIPTION_TEXT ${Sekcja1} $(DESC_Sekcja1)
  !insertmacro MUI_DESCRIPTION_TEXT ${Sekcja2} $(DESC_Sekcja2)
!insertmacro MUI_FUNCTION_DESCRIPTION_END

Aby ustawić opisy sekcji w deinstalatorze, użyj makra MUI_UNFUNCTION_DESCRIPTION_BEGIN oraz MUI_UNFUNCTION_DESCRIPTION_END.


4.2 Katalog Menu Start


Wstaw kod do zapisu skrótów (używając polecenia CreateShortcut) pomiędzy makra MUI_STARTMENU_WRITE_BEGIN oraz MUI_STARTMENU_WRITE_END:

!insertmacro MUI_STARTMENU_WRITE_BEGIN page_id
; ...utwórz skróty...
!insertmacro MUI_STARTMENU_WRITE_END

ID strony powinien być numerem ID strony, na której użytkownik wybrał katalog dla skrótów, które chcesz zapisać.

Zmienna, która zawiera katalog oraz numer ID strony, ustawiana jest jako parametr makra strony.

5. Okno dialogowe wyboru języka

Jeśli chcesz, aby instalator wyświetlił okno dialogowe wyboru języka (spójrz na przykład MultiLanguage.nsi (../../Examples/Modern UI/MultiLanguage.nsi)), wstaw do funkcji .onInit makro MUI_LANGDLL_DISPLAY:

Function .onInit

  !insertmacro MUI_LANGDLL_DISPLAY

FunctionEnd

Możesz również użyć tego makra dla deinstalatora, w funkcji un.onInit.


5.1 Ustawienia przechowywania wybranego języka w rejestrze


Aby zapamiętać preferencje użytkownika, możesz zdefiniować odpowiedni klucz w rejestrze. Te definicje powinny być ustawione przed wstawieniem makra strony instalacji.

  • MUI_LANGDLL_REGISTRY_ROOT klucz root
  • MUI_LANGDLL_REGISTRY_KEY klucz
  • MUI_LANGDLL_REGISTRY_VALUENAME nazwa_wartości

Klucz rejestru do przechowywania języka. Preferencje użytkownika zostaną zapamiętane. Możesz również użyć tego dla deinstalatora, aby wyświetlić prawidłowy język. Nie zapomnij usunąć tego klucza w deinstalatorze.

W deinstalatorze, wstaw makro MUI_UNGETLANGUAGE w funkcji un.onInit, aby pobrać preferencje języka:

Function un.onInit

  !insertmacro MUI_UNGETLANGUAGE

FunctionEnd

5.2 Ustawienia interfejsu okna dialogowego wyboru języka


Aby dostosować interfejs okna dialogowego wyboru języka, użyj tych definicji przed wstawieniem makra MUI_LANGDLL_DISPLAY.

  • MUI_LANGDLL_WINDOWTITLE tekst

    Tekst tytułowy okna dialogowego wyboru języka.

  • MUI_LANGDLL_INFO tekst

    Tekst wyświetlany w oknie dialogowym wyboru języka.

  • MUI_LANGDLL_ALWAYSSHOW

    Zawsze wyświetla okno dialogowe wyboru języka, nawet jeśli język przechowywany był w rejestrze Windows. Język przechowywany w rejestrze zostanie domyślnie zaznaczony.

  • MUI_LANGDLL_ALLLANGUAGES

    Zawsze wyświetla wszystkie dostępne języki i nie filtruje ich ze względu na ich stronę kodową.

6. Niestandardowe strony

Jeśli chcesz dodać do instalatora niestandardowe strony, możesz wstawić ich polecenia pomiędzy makrami stron.

!insertmacro MUI_PAGE_WELCOME
Page custom NazwaFunkcji ; Strona niestandardowa
!insertmacro MUI_PAGE_COMPONENTS

; Deinstalator
!insertmacro MUI_UNPAGE_CONFIRM
UninstPage custom un.NazwaFunkcji ; Strona niestandardowa
!insertmacro MUI_UNPAGE_INSTFILES

W funkcji strony użyj makra MUI_HEADER_TEXT, aby ustalić tekst tytułu w nagłówku strony:

LangString PAGE_TITLE ${LANG_POLISH} "Tytuł"
LangString PAGE_SUBTITLE ${LANG_POLISH} "Podtytuł"

Function CustomPageFunction
  !insermacro MUI_HEADER_TEXT $(PAGE_TITLE) $(PAGE_SUBTITLE)
FuctionEnd

7. Niestandardowe funkcje

Funkcje interfejsu NSIS, takie jak funkcja .onGUIInit oraz funkcje stron są automatycznie dodawane przez nowoczesny interfejs użytkownika i zapełniane kodem, aby obsłużyć funkcjonalności nowego interfejsu. Jeśli zatem chcesz dodać do nich dodatkowy kod, stwórz niestandardową funkcję, której definicja opierać się będzie na nowoczesnym interfejsie użytkownika.

Przykład:

!define MUI_CUSTOMFUNCTION_GUIINIT MojaFunkcja_GuiInit

Function MojaFunkcja_GuiInit
  ; ...twój kod...
FunctionEnd

Strony nowoczesnego interfejsu użytkownika Modern UI również mogą być dostosowywane przy użyciu niestandardowych funkcji.

7.1 Ogólne niestandardowe funkcje


Poniższe definicje powinny być ustawione przed wstawieniem makr języka.

  • MUI_CUSTOMFUNCTION_GUIINIT funkcja
  • MUI_CUSTOMFUNCTION_UNGUIINIT funkcja
  • MUI_CUSTOMFUNCTION_ABORT funkcja
  • MUI_CUSTOMFUNCTION_UNABORT funkcja
  • MUI_CUSTOMFUNCTION_ONMOUSEOVERSECTION funkcja
  • MUI_CUSTOMFUNCTION_UNONMOUSEOVERSECTION funkcja

Funkcje wykrywające ruch myszki nad kontrolką dostępne są tylko wtedy, gdy używane są makra opisowe (MUI_FUNCTION_DESCRIPTION_BEGIN). Jeśli opisy komponentów do zainstalowania nie są używane, musisz użyć funkcji .onMouseOverSection oraz un.onMouseOverSection.


7.2 Niestandardowe funkcje stron


Te definicje powinny być ustawione przed wstawieniem makra strony.

  • MUI_PAGE_CUSTOMFUNCTION_PRE funkcja
  • MUI_PAGE_CUSTOMFUNCTION_SHOW funkcja
  • MUI_PAGE_CUSTOMFUNCTION_LEAVE funkcja

Funkcja poprzedzająca (PRE) wywoływana jest najpierw i pozwala ona na zainicjowanie zmiennych lub zdecydowanie, czy dana strona ma być wyświetlona, czy też pominięta. Następnie wywoływana jest funkcja wyświetlania (SHOW). W tej funkcji możesz dostosować interfejs strony. Końcowym krokiem jest walidacja danych wejściowych użytkownika, dzięki funkcji wyjścia (LEAVE). Więcej informacji o tych funkcjach znajdziesz w podręczniku użytkownika.

W funkcji wyświetlającej, można pobrać uchwyty okna wszystkich kontrolek ze zmiennych nowoczesnego interfejsu użytkownika. Lista tych zmiennych nie jest jeszcze dostępna. Na razie warto wesprzeć się plikami źródłowymi interfejsu Modern UI 2.0. Deklaracje tych zmiennych można znaleźć na początku pliku nagłówkowego każdej ze stron.

8. Przykładowe skrypty


  • Podstawowy skrypt instalatora: Basic.nsi ("Examples/Modern UI/Basic.nsi")
  • Strona powitalna/końcowa: WelcomeFinish.nsi ("Examples/Modern UI/WelcomeFinish.nsi")
  • Instalator wielojęzykowy: MultiLanguage.nsi ("Examples/Modern UI/MultiLanguage.nsi")
  • Obrazek nagłówka: HeaderBitmap.nsi ("Examples/Modern UI/HeaderBitmap.nsi")
  • Strona wyboru katalogu Menu Start: StartMenu.nsi ("Examples/Modern UI/StartMenu.nsi")

9. Autorzy

Stworzył: Joost Verburg.

Ikonki zaprojektował: Nikos Adamamas, aka adni18.

Podziękowania dla Amir Szekely, aka KiCHiK, za jego pracę nad NSIS.

10. Licencja

Nowoczesny interfejs użytkownika Modern UI rozprowadzany jest na licencji zlib/libpng.

Copyright © 2002-2017 Joost Verburg

This software is provided 'as-is', without any express or implied warranty. In no event will the
authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial
applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the
    original software. If you use this software in a product, an acknowledgment in the product
    documentation would	be appreciated but is not required.
2. Altered versions must be plainly marked as such, and must not be misrepresented as being the
    original software.
3. This notice may not be removed or altered from any distribution.