WTYCZKI

NSIS obsługuje wtyczki, które mogą być wywoływane poprzez skrypt. Wtyczki są bibliotekami DLL napisanymi w języku C, C++, Delphi lub innym języku programowania. Wtyczki rozszerzają możliwości kodu NSIS.

Wywołanie wtyczki wygląda następująco:

NazwaDLL::NazwaFunkcji "parametr numer 1" "parametr numer 2" "parametr numer n"

Każda funkcja wtyczki może być wywołana z podaniem odpowiednich parametrów. Niektóre z nich ich nie wymagają, inne zaś mogą przyjmować ich tyle ile chcesz ich przekazać. Przykłady:

nsExec::ExecToLog '"${NSISDIR}\makensis.exe" /CMDHELP'
Pop $0 ; kod wyjścia procesu lub "error"
InstallOptions::dialog "$PLUGINSDIR\test.ini"
Pop $0 ; success/back/cancel/error
NSISdl::download http://download.nullsoft.com/winamp/client/winamp291_lite.exe $R0
Pop $0 ; "success" lub kod błędu

Wtyczki, które znane są systemowi NSIS wypisywane są zaraz po rozpoczęciu kompilacji w dzienniku kompilacji. NSIS szuka wtyczek w katalogu Plugins, który znajduje się się w folderze z zainstalowanym NSIS i wypisuje wszystkie ich dostępne funkcje. Możesz użyć polecenia !addplugindir, aby przekazać NSIS polecenie wyszukiwania wtyczek również w innym katalogu.


W ramach projektu System Information Tool oraz Winamp Information Tool stworzyłem kilka własnych wtyczek dla NSIS. Poniżej mamy ich opis (więcej informacji po kliknięciu w odnośniki):

  • SysInfo - Wyświetla podstawowe informacje o komputerze użytkownika
  • HashInfo - Pozwala na wygenerowanie wartości funkcji skrótu dla danego ciągu znaków lub pliku
  • WAInfo - Wyświetla podstawowe informacje o programie Winamp

Dystrybucja NSIS rozprowadzana jest z wieloma wtyczkami. Istnieje ich mnóstwo i przeznaczone są one do różnych zadań. Poniżej mamy opis kilku z tych, które wchodzą w skład dystrybucji (więcej informacji po kliknięciu w odnośniki):

  • AdvSplash - Wyświetla splash screen z efektami zanikania (Win2k/XP) oraz przezroczystości.
  • Banner - Wyświetla baner z dowolnym tekstem (dzięki UI IDD_VERIFY).
  • BgImage - Wyświetla obrazek lub gradient z dowolnym tekstem w oknie (odtwarza też pliki WAV).
  • Dialer - Oferuje pięć funkcji związanych z połączeniem z Internetem.
  • InstallOptions - Umożliwia tworzenie własnych stron przy użyciu poleceń NSIS (zobacz Strony).
  • Math - Obsługuje operacje matematyczne w NSIS.
  • nsDialogs - Umożliwia tworzenie interfejsu użytkownika nowej generacji.
  • nsExec - Wykonuje programy linii poleceń i pobiera wyjście bez otwierania okna konsoli
  • NSISdl - Umożliwia pobieranie plików przy użyciu protokołu HTTP.
  • Splash - Wyświetla prosty splash screen w instalatorach NSIS.
  • Startmenu - Pozwala na wybór i utworzenie odpowiedniego folderu w Menu Start.
  • System - Pozwala na wywoływanie dowolnej eksportowanej funkcji z dowolnej biblioteki DLL.
  • VPatch - Umożliwia stworzenie pliku łatki, która pozwala na uaktualnianie starszych wersji plików.

  • Modern UI - Opisuje nowoczesny interfejs użytkownika instalatorów NSIS.
  • Modern UI2 - Opisuje najnowszą (2.0) wersję nowoczesnego interfejsu użytkownika instalatorów NSIS.
  • MultiUser - Opisuje plik nagłówkowy dla instalacji w środowisku wielu użytkowników.
  • StrFunc - Opisuje plik nagłówkowy do manipulacji łańcuchami znaków w NSIS.
  • Makensisw - Opisuje program będący graficznym interfejsem kompilatora NSIS.

Więcej wtyczek możesz znaleźć w sieci, pod tym adresem: NSIS Wiki.

Możesz również stworzyć wtyczki samemu. Z dystrybucją dostarczane są pliki nagłówkowe w języku C/C++ oraz Delphi. Zobacz przykład podstawowej wtyczki, który znajduje się w katalogu /Examples/Plugin/. Kod źródłowy załączonych wtyczek można również znaleźć w źródłach projektu NSIS.