[[oktatas:programozás:programok|< Programok]]
====== Nsis ======
===== Telepítés =====
Leszedjük a legújabb változat telepítőjét például innen:
* http://sourceforge.net/projects/nsis/files/NSIS%202/
Futtatjuk az nsis-2.46-setup.exe telepítőt. (Jelenleg a 2.46-os az aktuális kidadás)
===== Telepítő készítése =====
Lépések
- script fájl készítése
- script fájl fordítása
- Telepítő kipróbálása
==== Script fájl készítése ====
A script fájl egy tetszőlegesen elnevezett .nsi kiterjesztésű fájl.
=== Változók ===
$DESKTOP
$PROGRAMFILES
=== Lapok (Page) ===
Megmondják a telepítő milyen lapokat dobjon fel.
A telepítés folyamatáról alapértelmezetten van egy ablak, és csak ez az ablak.
A lapok sorrendje meghatározza a megjelenésük sorrendjét.
Page license
Page components
Page directory
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
=== Szekciók ===
Section "Installer Section"
SectionEnd
Section "un.Uninstaller Section"
SectionEnd
Példa
Section "Programom"
SetOutPath $INSTDIR
File "Programom.exe"
File "Olvasd.txt"
SectionEnd
=== Regisztrációs kulcs ===
; Regisztrációs kulcs a könyvtárellenőrzéshez (így ha újra telepítünk az automatikusan felülírásra kerül
InstallDirRegKey HKLM "Software\NSIS_Pelda2" "Install_Dir"
==== Script fájl fordítása ====
Elindítjuk az NSIS programot:
Start -> Programok -> NSIS
A programban a "Compiler" rész:
Compile NSI scripts
Az előugró ablakban betöltjük a Pelda.nsi állományt.
Betöltéssel együtt fordításra is kerül. Az ablakban lehetővé válik a script
tesztelése, szerkesztése és újrafordítása.
A fordítás kezdeményezhető Intézőből vagy Total Commanderből jobb egér gomb után
a következő menüpontot választva:
Compile NSI script
===== Példák =====
==== Példa 1 ====
Pelda.nsi
; A telepítő neve
Name "pelda"
; A kimeneti fájl neve
OutFile "pelda.exe"
;Az alapértelmezett telepítésikönyvtár
InstallDir $DESKTOP\Pelda
; Lapok
Page directory
Page instfiles
Section "" ; Nincs név, mert nem fontos
; Kimeneti útvonal beállítása telepítőkönyvtárként
SetOutPath $INSTDIR
; Tegyük a fájlt ide:
File Pelda.nsi
SectionEnd
==== Példa 2 ====
; Pelda2.nsi
;--------------------------------
; A telepítő neve
Name "Example2"
; A kimeneti fájl neve
OutFile "example2.exe"
; Telepítés könyvtára
InstallDir $PROGRAMFILES\Example2
; Regisztrációs adatbázis kulcs ellenőrzése (így, ha újratelepítésre kerül a sor az automatikusan felülírásra kerül
InstallDirRegKey HKLM "Software\NSIS_Example2" "Install_Dir"
; Igényelt application jogok Windows Vista számára
RequestExecutionLevel admin
;--------------------------------
; Oldalak
Page components
Page directory
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
;--------------------------------
; A dolog telepítése
Section "Pelda2 (required)"
SectionIn RO
; Kimeneti útvonal a telepítési útvonalra állítása
SetOutPath $INSTDIR
; Ide tesszük a fájlt
File "pelda2.nsi"
; Az telepítési útvonal registrybe írása
WriteRegStr HKLM SOFTWARE\NSIS_Example2 "Install_Dir" "$INSTDIR"
; Az uninstall kulcsok írása a Windows számára
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pelda2" "DisplayName" "NSIS Pelda2"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pelda2" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pelda2" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pelda2" "NoRepair" 1
WriteUninstaller "uninstall.exe"
SectionEnd
; Opcionális rész (megjelenés a felhasználó számára)
Section "Start Menu Shortcuts"
CreateDirectory "$SMPROGRAMS\Pelda2"
CreateShortCut "$SMPROGRAMS\Pelda2\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\Pelda2\Pelda2 (MakeNSISW).lnk" "$INSTDIR\pelda2.nsi" "" "$INSTDIR\pelda2.nsi" 0
SectionEnd
;--------------------------------
; Uninstaller
Section "Uninstall"
; Regisztrációs adatbázis kulcsainak törlése
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Pelda2"
DeleteRegKey HKLM SOFTWARE\NSIS_Pelda2
; Fájlok és uninstaller törlése
Delete $INSTDIR\example2.nsi
Delete $INSTDIR\uninstall.exe
; A shortcuts törlése
Delete "$SMPROGRAMS\Pelda2\*.*"
; A használt könyvtárak törlése
RMDir "$SMPROGRAMS\Pelda2"
RMDir "$INSTDIR"
SectionEnd
===== Külső linkek =====
* http://nsis.sourceforge.net/Docs/Chapter4.html
* http://www.nullsoft.com/free/nsis/makensis.htm
* http://www.seas.gwu.edu/~simhaweb/java/lectures/appendix/installer/install.html
* http://nsis.sourceforge.net/Path_Manipulation
* http://nsis.sourceforge.net/Environmental_Variables:_append%2C_prepend%2C_and_remove_entries#Function_Code
* http://nsis.sourceforge.net/Path_Manipulation
* http://nsis.sourceforge.net/Simple_tutorials