[[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