1. Wprowadzenie do NSIS

Ten dokument zgodny jest z NSIS 3.1


1.1 O NSIS

Pierwszym doświadczeniem użytkownika z twoją aplikacją jest instalator. Powolna lub zakończona niepowodzeniem instalacja jest jednym z najbardziej irytujących problemów komputerowych. Niewątpliwie, szybki i przyjazny użytkownikowi instalator jest nieodłączną częścią oprogramowania, które tworzysz.

NSIS (Nullsoft Scriptable Install System) jest narzędziem, które pozwala programistom na stworzenie takich instalatorów dla Windows. Rozprowadzany jest na licencji open source i jest całkowicie darmowy dla dowolnego zastosowania.

NSIS tworzy instalatory, które pozwalają na instalowanie, deinstalowanie, zmianę systemowych ustawień, wyodrębnianie plików, itp. Jako, że oparty jest on na skryptach, możesz w pełni kontrolować każdą część instalatora. Zastosowany język skryptowy obsługuje zmienne, funkcje oraz manipulowanie łańcuchami znaków, tak jak normalne języki programowania - ale zaprojektowany jest specjalnie do tworzenia instalatorów. Nawet z tymi wszystkimi możliwościami, NSIS jest wciąż najmniejszym dostępnym systemem instalowania. Przy domyślnych opcjach, nagłówek zajmuje zaledwie 34 KB.

Od wersji NSIS 3 możesz również tworzyć instalatory Unicode. Wspierają one wszystkie języki obsługiwane przez system operacyjny, dzięki czemu nie będzie żadnych problemów z ich poprawnym wyświetlaniem.

1.2 Najważniejsze właściwości


  • Mały rozmiar nagłówka

    NSIS jest szybki i wydajny, a przy tym zajmuje mało miejsca. Podczas, gdy inne instalatory często dodają setki kilobajtów lub kilka megabajtów do danych twojego instalatora, w pełni funkcjonalny instalator NSIS posiada nagłowek o rozmiarze tylko 34 KB.

  • Kompatybilny z wszystkimi wersjami systemu Windows

    Możesz stworzyć instalator, który jest kompatybilny z Windows 95, 98, ME, NT4, 2000, XP, 2003, Vista, Server 2008, 7, Server 2008R2, 8, Server 2012, 8.1, Server 2012R2 oraz Windows 10.

  • Unikalne metody kompresji

    Możesz wybierać pomiędzy trzema różnymi zintegrowanymi metodami kompresji (ZLib, BZip2, LZMA). Nowa metoda kompresji LZMA daje lepsze wyniki niż jakakolwiek inna metoda. Nie musisz używać dużych samorozpakowujących się modułów archiwum lub innych aplikacji. Obsługa kompresji wbudowana jest w 34 KB nagłówku.

  • Oparty na skryptach

    W przeciwieństwie do innych systemów, które mogą tylko generować instalatory w oparciu o listę plików i klucze rejestru, NSIS posiada wbudowany potężny język skryptowy. Język ten jest zaprojektowany dla instalatorów i posiada polecenia, które pomagają ci w wykonaniu wielu zadań instalacji. Możesz łatwo dodać własne i wykorzystać różne uaktualnienia, sprawdzanie wersji i inne. Na stronie NSIS Wiki możesz znaleźć wiele więcej.

  • Wiele wersji językowych w jednym instalatorze

    Jeden instalator może obsługiwać wielojęzykowy interfejs. Więcej niż 60 tłumaczeń jest już załączonych. Możesz stworzyć swój własny plik językowy. Języki RTL (z prawej na lewo), takie jak Arabski i Hebrajski są w pełni obsługiwane. Możliwe jest również tworzenie natywnych instalatorów Unicode, które wspierają jeszcze więcej języków.

  • Wiele właściwości i opcji dla docelowego systemu

    Język skryptowy udostępnia polecenia, które możesz użyć na docelowym systemie. Może to być np. tworzenie katalogu lub edycja rejestru, ale także na przykład modyfikacje plików tekstowych/binarnych, modyfikacje zmiennych środowiskowych czy ponowne uruchomienie komputera. Używając jednej z dostarczanych wtyczek możesz nawet bezpośrednio wywoływać funkcje Windows API.

  • Własne okna dialogowe oraz interfejsy

    Możesz stworzyć własne okna kreatora instalacji, by wspomóc interakcje z użytkownikiem lub zintegrować opcje konfiguracji. NSIS zawiera klasyczne i nowoczesne interfejsy kreatora instalacji, lecz istnieje też możliwość tworzenia własnego interfejsu.

  • System wtyczek

    Możliwości NSIS mogą być rozszerzane poprzez użycie wtyczek, współpracujących z instalatorem. Mogą one być napisane w języku C, C++, Delphi lub innym języku programowania i mogą być użyte do wykonywania zadań instalacji lub rozszerzenia interfejsu instalatora. Wtyczkę możesz użyć wstawiając do skryptu zaledwie jedną linię kodu. Wtyczki mogą być również kompresowane jak pozostałe składniki instalatora i zostaną tylko wtedy do niego dołączone, jeśli użyjesz określonej funkcji oferowanej przez tę wtyczkę.

  • Obsługa instalacji sieciowej, łatania plików

    Dystrybucja NSIS zawiera zbiór wtyczek, które pozwalają na pobieranie plików z internetu, łączenie z internetem, łatanie istniejących plików i wiele więcej.

  • Integracja projektu, różne wydania oraz automatyczne tworzenie

    Kompilator NSIS posiada potężny preprocesor. Pozwala to na łatwą integrację wielu projektów w jednym instalatorze lub automatyczne generowanie instalatorów. Możesz również wygenerować różne wydania, takie jak na przykład wersje Lite (podstawowe) oraz Full (pełne).

  • Łatwe i proste w odbiorze formaty plików

    Formaty skryptów NSIS oraz używanego w oknach dialogowych interfejsu są łatwe, udokumentowane i proste w odbiorze, więc możesz edytować swoje pliki w swoim ulubionym edytorze. Pozwala to także na automatyczne generowanie skryptów.

1.3 Lista właściwości


  • Generowanie wykonywalnych instalatorów
  • Obsługa kompresji danych ZLIB, BZIP2 oraz LZMA (pliki mogą być kompresowane pojedynczo lub razem)
  • Obsługa deinstalacji (instalator może wygenerować deinstalator)
  • Interfejs użytkownika, który można zmieniać (okna dialogowe, czcionki, tła, ikony, tekst, pola wyboru, obrazki, itd.)
  • Klasyczny i nowoczesny interfejs kreatora
  • Pełne wsparcie wielu języków w jednym instalatorze. Dostępnych jest ponad 60 tłumaczeń, możliwość stworzenia własnego. Wsparcie Unicode rozszerzające listę dostępnych języków.
  • System stron: Możesz wykorzystać standardowe strony kreatora lub własne strony
  • Użytkownik ma możliwość wyboru instalowanych składników z drzewa komponentów
  • Wiele konfiguracji instalacji (zazwyczaj: Minimalna, Typowa, Pełna), oraz własna konfiguracja
  • Weryfikacja sum kontrolnych CRC32 instalatora
  • Mały rozmiar nagłówka (34 KB przy domyślnych opcjach)
  • Wyświetlanie postanowień licencji w formacie tekstowym lub RTF
  • Detekcja katalogu docelowego na podstawie danych przechowywanych w rejestrze Windows
  • Łatwy w użyciu system wtyczek (mnóstwo wtyczek do tworzenia własnych okien dialogowych, połączenia z internetem, pobierania plików poprzez protokół HTTP, łatania plików, wywoływania funkcji Win32 API itp.)
  • Instalatory mogą mieć rozmiar do 2GB
  • Opcjonalny tryb cichej instalacji zapewniający automatyzację instalacji
  • Preprocesor z obsługą zdefiniowanych symboli, makr, kompilacji warunkowej, standardowych predefinicji
  • Przyjemne programowanie w języku z elementami PHP oraz assemblera (zmienne użytkownika, stos, rzeczywista kontrola wykonywania, itp.)
  • Instalatory posiadają własny VM, co pozwala na pisanie kodu, który obsługuje:
    • Wypakowywanie plików (z konfigurowalnymi parametrami nadpisywania)
    • Kopiowanie plików/katalogów, zmienianie nazwy, usuwanie, wyszukiwanie
    • Wywoływanie bibliotek DLL wtyczek
    • Rejestrowanie/wyrejestrowywanie bibliotek DLL i kontrolek ActiveX
    • Uruchamianie plików wykonywalnych (opcje shell execute oraz wait)
    • Tworzenie skrótów
    • Odczyt/ustawienia/enumeracja/usuwanie kluczy rejestru Windows
    • Odczyt/zapis plików konfiguracyjnych INI
    • Odczyt/zapis plików tekstowych
    • Potężne możliwości manipulowania typami całkowitymi i łańcuchami znaków
    • Wyszukiwanie okien w oparciu o nazwę klasy lub tytuł okna
    • Manipulacja interfejsem użytkownika (czcionka/ustawienia tekstu)
    • Obsługa komunikatów Windows
    • Interakcja z użytkownikiem poprzez okna dialogowe komunikatów i własne strony
    • Rozgałęzianie, porównywanie, itp.
    • Sprawdzanie błędów
    • Obsługa ponownego rozruchu, włączając w to usuwanie lub zmianę nazwy plików po ponownym uruchomieniu komputera
    • Polecenia zachowania się instalatora (takie jak pokaż/ukryj/czekaj/itp)
    • Funkcje użytkownika w skrypcie
    • Funkcje zwrotne akcji użytkownika
  • Całkowicie darmowy do dowolnego zastosowania. Zobacz licencję.

1.4 Instalatory Unicode

Poczynając od wersji NSIS 3.0 możesz tworzyć instalatory Unicode ustawiając atrybut Unicode. Instalatory te nie będą działać w starszych wersjach Windows (95/98/ME), ale umożliwiają one obsługę dowolnego języka Unicode obsługiwanego przez system operacyjny.

Tworząc instalator Unicode zmienne NSIS mogą przechowywać znaki Unicode (z zakresu 0001-FFFF). Nie jest wymagana modyfikacja istniejących skryptów. Aby umożliwić odczyt lub zapis plików Unicode dodano specjalne instrukcje obsługujące odczyt z dysku/zapis na dysku łańcuchów znaków UTF-16LE.