viestards ([info]viestards) rakstīja [info]progplace kopienā,
@ 2004-03-19 13:49:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Nullsoft Scriptable Install System iespējas.
Nullsoft Scriptable Install System (NSIS) ir programmatūra, kas paredzēta instalāciju veidošanai Windows sistēmām. NSIS sākotnēji bija paredzēta tikai populārā MP3 spēlētāja Winamp instalācijai, taču ar laiku ir izaugusi līdz atsevišķi izstrādājamai instalāciju sistēmai, kas izmantojama gan vienkāršām, gan sarežģītām sistēmām.
Galvenās NSIS priekšrocības ir nelielais instalatora izmērs (34Kb), savietojamība ar visām Windows versijām, uz skriptiem balstīta instalāciju veidošana, nestandarta logu veidošana, kā arī spraudņu sistēma, kā arī daudzas citas iespējas (skatīt http://nsis.sourceforge.net/features ). Ir pieejams arī latviskais NSIS tulkojums, kas dod iespēju veidot instalācijas latviešu valodā.
NSIS pēc būtības ir tikai kompilators, kas kompilē uzrakstītos skriptus, taču ir pieejami arī NSIS skriptu redaktori, kā piemēram Venis IX (http://www.spaceblue.com/venis/).

Neliels ieskats NSIS instalācijas skriptā.
NSIS skripts sākuma var likties diezgan dīvains, taču nedomāju, ka pieredzējušam programmētājam ar to var rasties problēmas. Skriptā parasti ir instalatora atribūti un sekcijas/funkcijas. Atribūti nosaka instalācijas parametrus. Kā atribūtus var minēt Name(nosaukums) vai InstallDir(instalācijas direktorija).
Instalācijas veikšanai tiek izmantotas sekcijas, kas palīdz sadalīt instalāciju vairākos gabalos. Piemērs:
Section "My Program"
SetOutPath $INSTDIR
File "My Program.exe"
File "Readme.txt"
SectionEnd

Funckijas ir līdzīgas sekcijām, atšķiras tikai veids, kādā tās tiek izsauktas. Tiek dalītas lietotāju un atgriezeniskās saites (callback) funkcijas. Lietotāja funkcijas izpildās tikai tad, kad tās tiek izsauktas no citām sekcijām vai funkcijām, kamēr callback funkcijas izsauc instalācija atsaucoties uz noteiktiem notikumiem, piemēram, sekmīga instalācija, instalācijas mapes nomaiņa, kā arī daudzi citi. Callback funkcijas piemērs:
Function .onInit
MessageBox MB_YESNO "This will install My Program. Do you wish to continue?" IDYES gogogo
Abort
gogogo:
FunctionEnd

NSIS skriptā mainīgie tiek definēti, izmantojot komandu Var, piemēram Var BLA, un izsaukti, priekšā ieliekot $ simbolu, bet lai apzīmētu komentārus, tiek izmantots semikols. Papildus mainīgajiem var izmantot steku, kam var piekļūt izmantojot komandas Push un .
Papildus informācijai ieteicams apskatīt NSIS lietotāja rokasgrāmatu, kas atrodama http://nsis.sourceforge.net/Docs/
Vienkāršs instalācijas skripts

;NSIS Modern User Interface version 1.70
;Basic Example Script
;Written by Joost Verburg

;--------------------------------
;Include Modern UI

!include "MUI.nsh"

;--------------------------------
;General

;Name and file
Name "Modern UI Test 1.70"
OutFile "Basic.exe"

;Default installation folder
InstallDir "$PROGRAMFILES\Modern UI Test"

;Get installation folder from registry if available
InstallDirRegKey HKCU "Software\Modern UI Test" ""

;--------------------------------
;Interface Settings

!define MUI_ABORTWARNING

;--------------------------------
;Pages

!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Contrib\Modern UI\License.txt"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES

!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES

;--------------------------------
;Languages

!insertmacro MUI_LANGUAGE "English"

;--------------------------------
;Installer Sections

Section "Dummy Section" SecDummy

SetOutPath "$INSTDIR"

;ADD YOUR OWN FILES HERE...

;Store installation folder
WriteRegStr HKCU "Software\Modern UI Test" "" $INSTDIR

;Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"

SectionEnd

;--------------------------------
;Descriptions

;Language strings
LangString DESC_SecDummy ${LANG_ENGLISH} "A test section."

;Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
!insertmacro MUI_FUNCTION_DESCRIPTION_END

;--------------------------------
;Uninstaller Section

Section "Uninstall"

;ADD YOUR OWN FILES HERE...

Delete "$INSTDIR\Uninstall.exe"

RMDir "$INSTDIR"

DeleteRegKey /ifempty HKCU "Software\Modern UI Test"

SectionEnd


NSIS mājaslapa: http://nsis.sourceforge.net


(Lasīt komentārus)

Nopūsties:

No:
Lietotājvārds:
Parole:
Ievadi te 'qws' (liidzeklis pret spambotiem):
Temats:
Tematā HTML ir aizliegts
  
Ziņa:
Neesi iežurnalējies. Iežurnalēties?