|
Redaktor: DarkCloud
|
Dodano: 16/05/2009 - 15:53 |
|
Witam, chciałbym przedstawić wam jak w prosty sposób możemy zrobić swój własny, profesjonalny instalator gry. Z góry też zaznaczam iż ten tutorial nie jest w pełni ukończony.
Najpierw krótkie objaśnienia: Tekst ten jest głównie przeznaczony pod wersję XP RM'a, jednakże wystarczy trochę analizy kodu a będziemy mogli zrobić instalator do praktycznie każdej rzeczy. "Gwiazdki":
- *1 - Jeśli nie chcemy się babrać w kodzie i ustawiać dla każdego pliku ścieżki dostępu to najlepiej by nasz projekt był zakodowany. Zakodowanie projektu przynosi także inne zyski o których nie mam zamiaru już tu pisać. Tak czy siak gdy nasza gra/demo/cokolwiek będzie ukończone to najpierw musimy zrobić standardowy intalator w RM. Czyli wybieramy "File">"Compress Game Data...". A teraz Uwaga, zaznaczamy jeszczę "Create Encrypted Archive" i klikamy ok. Potem korzystamy z utworzenego przed chwilą instalatora i instalujemy grę w dowolny folder. Ten właśnie folder będzie naszym folderem z grą.
- Naszym pierwszym krokiem jest ściągnięcie tego oto cudeńka:
http://puzzle.dl.sourceforge.net/sourceforge/nsis/nsis-2.40-setup.exe Czyli "Nullsoft Scriptable Install System", w skrócie NSIS.
- Następnie oczywiście instalujemy naszą zdobycz.
Pod koniec instalacji, jeśli nic nie mąciliśmy to program powinien uruchomić się sam:

- Na razie zostawmy go w spokoju.
Otwórzcie notatnik i wklejcie ten oto kod: instalator.nsi;--------------------------------
; Written by DarkCloud
; Pobrano z: www.zamthir.net
;--------------------------------
;--------------------------------
; Include Modern UI
!include "MUI2.nsh"
;--------------------------------
; General
; The name of the installer
Name "Nazwa Gry"
; The file to write
OutFile "Nazwa Gry.exe"
; The default installation directory
InstallDir "$PROGRAMFILES\Nazwa Gry"
; Registry key to check for directory (so if you install again, it will
; overwrite the old one automatically)
InstallDirRegKey HKLM "Software\Nazwa Gry" "Install_Dir"
; Request application privileges for Windows Vista
RequestExecutionLevel user
;--------------------------------
; Interface Configuration
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" ; optional
!define MUI_ABORTWARNING
;--------------------------------
; Pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "License.txt"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
# These indented statements modify settings for MUI_PAGE_FINISH
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_RUN_NOTCHECKED
!define MUI_FINISHPAGE_RUN_TEXT "Uruchom grÄ™."
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;--------------------------------
; Languages
!insertmacro MUI_LANGUAGE "Polish"
;--------------------------------
; Installer Sections
Section "Nazwa Gry" SecDummy
SectionIn RO
; Set output path to the installation directory.
SetOutPath $INSTDIR
; Put file there
File "Game.exe" "Game.ini" "Game.rgssad"
; Write the installation path into the registry
WriteRegStr HKLM "SOFTWARE\Nazwa Gry" "Install_Dir" "$INSTDIR"
; Write the uninstall keys for Windows
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "DisplayName" "Nazwa Gry"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "UninstallString"
'"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "NoRepair" 1
WriteUninstaller "uninstall.exe"
SectionEnd
;--------------------------------
;Descriptions
;Language strings
LangString DESC_SecDummy ${LANG_POLISH} "Pliki niezbędne do uruchomienia gry."
;Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;--------------------------------
; Optional section (can be disabled by the user)
Section "Start Menu Shortcuts"
CreateDirectory "$SMPROGRAMS\Nazwa Gry"
CreateShortCut "$SMPROGRAMS\Nazwa Gry\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\Nazwa Gry\Nazwa Gry.lnk" "$INSTDIR\Game.exe" "" "$INSTDIR\Game.exe" 0
SectionEnd
;--------------------------------
; Optional section (can be disabled by the user)
Section "Desktop Shortcut"
CreateShortCut "$DESKTOP\Nazwa Gry.lnk" "$INSTDIR\Game.exe" "" "$INSTDIR\Game.exe" 0
SectionEnd
;--------------------------------
; Uninstaller
Section "Uninstall"
; Remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry"
DeleteRegKey HKLM SOFTWARE\Nazwa Gry
; Remove files and uninstaller
Delete $INSTDIR\game.exe
Delete $INSTDIR\game.ini
Delete $INSTDIR\game.rgssad
Delete $INSTDIR\uninstall.exe
; Remove shortcuts, if any
Delete "$SMPROGRAMS\Nazwa Gry\*.*"
Delete "$DESKTOP\Nazwa Gry.lnk"
; Remove directories used
RMDir "$SMPROGRAMS\Nazwa Gry"
RMDir "$INSTDIR"
SectionEnd
;--------------------------------
; LaunchLink Function
Function LaunchLink
ExecShell "" "$INSTDIR\game.exe"
FunctionEnd%3B--------------------------------%0A%3B%20Written%20by%20DarkCloud%0A%3B%20Pobrano%20z%3A%20www.zamthir.net%0A%3B--------------------------------%0A%0A%3B--------------------------------%0A%3B%20Include%20Modern%20UI%0A%0A%21include%20%22MUI2.nsh%22%0A%0A%3B--------------------------------%0A%3B%20General%0A%0A%3B%20The%20name%20of%20the%20installer%0AName%20%22Nazwa%20Gry%22%0A%0A%3B%20The%20file%20to%20write%0AOutFile%20%22Nazwa%20Gry.exe%22%0A%0A%3B%20The%20default%20installation%20directory%0AInstallDir%20%22%24PROGRAMFILES%5CNazwa%20Gry%22%0A%0A%3B%20Registry%20key%20to%20check%20for%20directory%20%28so%20if%20you%20install%20again%2C%20it%20will%20%0A%3B%20overwrite%20the%20old%20one%20automatically%29%0AInstallDirRegKey%20HKLM%20%22Software%5CNazwa%20Gry%22%20%22Install_Dir%22%0A%0A%3B%20Request%20application%20privileges%20for%20Windows%20Vista%0ARequestExecutionLevel%20user%0A%0A%3B--------------------------------%0A%3B%20Interface%20Configuration%0A%0A%21define%20MUI_HEADERIMAGE%0A%21define%20MUI_HEADERIMAGE_BITMAP%20%22%24%7BNSISDIR%7D%5CContrib%5CGraphics%5CHeader%5Cnsis.bmp%22%20%3B%20optional%0A%21define%20MUI_ABORTWARNING%0A%0A%3B--------------------------------%0A%3B%20Pages%0A%0A%21insertmacro%20MUI_PAGE_WELCOME%0A%21insertmacro%20MUI_PAGE_LICENSE%20%22License.txt%22%0A%21insertmacro%20MUI_PAGE_COMPONENTS%0A%21insertmacro%20MUI_PAGE_DIRECTORY%0A%21insertmacro%20MUI_PAGE_INSTFILES%0A%23%20These%20indented%20statements%20modify%20settings%20for%20MUI_PAGE_FINISH%0A%21define%20MUI_FINISHPAGE_NOAUTOCLOSE%0A%21define%20MUI_FINISHPAGE_RUN%0A%21define%20MUI_FINISHPAGE_RUN_NOTCHECKED%0A%21define%20MUI_FINISHPAGE_RUN_TEXT%20%22Uruchom%20gr%C4%99.%22%0A%21define%20MUI_FINISHPAGE_RUN_FUNCTION%20%22LaunchLink%22%0A%21insertmacro%20MUI_PAGE_FINISH%0A%0A%21insertmacro%20MUI_UNPAGE_WELCOME%0A%21insertmacro%20MUI_UNPAGE_CONFIRM%0A%21insertmacro%20MUI_UNPAGE_INSTFILES%0A%21insertmacro%20MUI_UNPAGE_FINISH%0A%0A%3B--------------------------------%0A%3B%20Languages%0A%0A%21insertmacro%20MUI_LANGUAGE%20%22Polish%22%0A%0A%3B--------------------------------%0A%3B%20Installer%20Sections%0A%0ASection%20%22Nazwa%20Gry%22%20SecDummy%0A%0ASectionIn%20RO%0A%0A%3B%20Set%20output%20path%20to%20the%20installation%20directory.%0ASetOutPath%20%24INSTDIR%0A%0A%3B%20Put%20file%20there%0AFile%20%22Game.exe%22%20%22Game.ini%22%20%22Game.rgssad%22%0A%0A%3B%20Write%20the%20installation%20path%20into%20the%20registry%0AWriteRegStr%20HKLM%20%22SOFTWARE%5CNazwa%20Gry%22%20%22Install_Dir%22%20%22%24INSTDIR%22%0A%0A%3B%20Write%20the%20uninstall%20keys%20for%20Windows%0AWriteRegStr%20HKLM%20%22Software%5CMicrosoft%5CWindows%5CCurrentVersion%5CUninstall%5CNazwa%20Gry%22%20%22DisplayName%22%20%22Nazwa%20Gry%22%0AWriteRegStr%20HKLM%20%22Software%5CMicrosoft%5CWindows%5CCurrentVersion%5CUninstall%5CNazwa%20Gry%22%20%22UninstallString%22%20%0A%0A%27%22%24INSTDIR%5Cuninstall.exe%22%27%0AWriteRegDWORD%20HKLM%20%22Software%5CMicrosoft%5CWindows%5CCurrentVersion%5CUninstall%5CNazwa%20Gry%22%20%22NoModify%22%201%0AWriteRegDWORD%20HKLM%20%22Software%5CMicrosoft%5CWindows%5CCurrentVersion%5CUninstall%5CNazwa%20Gry%22%20%22NoRepair%22%201%0AWriteUninstaller%20%22uninstall.exe%22%0A%0ASectionEnd%0A%0A%3B--------------------------------%0A%3BDescriptions%0A%0A%3BLanguage%20strings%0ALangString%20DESC_SecDummy%20%24%7BLANG_POLISH%7D%20%22Pliki%20niezb%C4%99dne%20do%20uruchomienia%20gry.%22%0A%0A%3BAssign%20language%20strings%20to%20sections%0A%21insertmacro%20MUI_FUNCTION_DESCRIPTION_BEGIN%0A%21insertmacro%20MUI_DESCRIPTION_TEXT%20%24%7BSecDummy%7D%20%24%28DESC_SecDummy%29%0A%21insertmacro%20MUI_FUNCTION_DESCRIPTION_END%0A%0A%3B--------------------------------%0A%3B%20Optional%20section%20%28can%20be%20disabled%20by%20the%20user%29%0A%0ASection%20%22Start%20Menu%20Shortcuts%22%0A%0ACreateDirectory%20%22%24SMPROGRAMS%5CNazwa%20Gry%22%0ACreateShortCut%20%22%24SMPROGRAMS%5CNazwa%20Gry%5CUninstall.lnk%22%20%22%24INSTDIR%5Cuninstall.exe%22%20%22%22%20%22%24INSTDIR%5Cuninstall.exe%22%200%0ACreateShortCut%20%22%24SMPROGRAMS%5CNazwa%20Gry%5CNazwa%20Gry.lnk%22%20%22%24INSTDIR%5CGame.exe%22%20%22%22%20%22%24INSTDIR%5CGame.exe%22%200%0A%0ASectionEnd%0A%0A%3B--------------------------------%0A%3B%20Optional%20section%20%28can%20be%20disabled%20by%20the%20user%29%0A%0ASection%20%22Desktop%20Shortcut%22%0A%0ACreateShortCut%20%22%24DESKTOP%5CNazwa%20Gry.lnk%22%20%22%24INSTDIR%5CGame.exe%22%20%22%22%20%22%24INSTDIR%5CGame.exe%22%200%0A%0ASectionEnd%0A%0A%3B--------------------------------%0A%3B%20Uninstaller%0A%0ASection%20%22Uninstall%22%0A%0A%3B%20Remove%20registry%20keys%0ADeleteRegKey%20HKLM%20%22Software%5CMicrosoft%5CWindows%5CCurrentVersion%5CUninstall%5CNazwa%20Gry%22%0ADeleteRegKey%20HKLM%20SOFTWARE%5CNazwa%20Gry%0A%0A%3B%20Remove%20files%20and%20uninstaller%0ADelete%20%24INSTDIR%5Cgame.exe%0ADelete%20%24INSTDIR%5Cgame.ini%0ADelete%20%24INSTDIR%5Cgame.rgssad%0ADelete%20%24INSTDIR%5Cuninstall.exe%0A%0A%3B%20Remove%20shortcuts%2C%20if%20any%0ADelete%20%22%24SMPROGRAMS%5CNazwa%20Gry%5C%2A.%2A%22%0ADelete%20%22%24DESKTOP%5CNazwa%20Gry.lnk%22%0A%0A%3B%20Remove%20directories%20used%0ARMDir%20%22%24SMPROGRAMS%5CNazwa%20Gry%22%0ARMDir%20%22%24INSTDIR%22%0A%0ASectionEnd%0A%0A%3B--------------------------------%0A%3B%20LaunchLink%20Function%0A%0AFunction%20LaunchLink%0AExecShell%20%22%22%20%22%24INSTDIR%5Cgame.exe%22%0AFunctionEnd Następnie wybieramy "Plik"=>"Zapisz jako...", potem w "Zapisz jako typ:" zmieniamy na "Wszystkie pliki", a w "Nazwa pliku:" wklejamy to: "instalator.nsi". Na koniec oczywiście zapisujemy plik w dowolnie wybranym przez nas miejscu, np na pulpicie. Jeśli macie jakieś problemy z tym punktem to możecie ściągnąć "gotowca", który jest nieco niżej ^^".
- Ok, teraz otwieramy nasz folder z grą/projektem (projekt musi być już zakodowany*1).
Powinny znajdować się tam 3 pliki (czasem jest ich więcej, np pliki Audio): "Game.exe","Game.ini" i "Game.rgssad". Do tego folderu wklejamy wcześniej utworzony plik "instalator.nsi".
- Teraz przywołujemy nasz wcześniej schowany program i klikamy w "Compile NSI Scripts".
Powinnyśmy ujrzeć coś takiego:

- Wybieramy "File"=>"Load Script...", szukamy folder z naszÄ… grÄ… i otwieramy plik "instalator.nsi".
- Teraz zajmiemy się edycją treści instalatora.
Naciskamy więc "Script"=>"Edit Script". A więc zaczynamy =D!:
;--------------------------------
; General
; The name of the installer
Name "Nazwa Gry"
; The file to write
OutFile "Nazwa Gry.exe"
; The default installation directory
InstallDir "$PROGRAMFILES\Nazwa Gry"
; Registry key to check for directory (so if you install again, it will
; overwrite the old one automatically)
InstallDirRegKey HKLM "Software\Nazwa Gry" "Install_Dir"
; Request application privileges for Windows Vista
RequestExecutionLevel user %3B--------------------------------%0A%3B%20General%0A%0A%3B%20The%20name%20of%20the%20installer%0AName%20%22Nazwa%20Gry%22%0A%0A%3B%20The%20file%20to%20write%0AOutFile%20%22Nazwa%20Gry.exe%22%0A%0A%3B%20The%20default%20installation%20directory%0AInstallDir%20%22%24PROGRAMFILES%5CNazwa%20Gry%22%0A%0A%3B%20Registry%20key%20to%20check%20for%20directory%20%28so%20if%20you%20install%20again%2C%20it%20will%20%0A%3B%20overwrite%20the%20old%20one%20automatically%29%0AInstallDirRegKey%20HKLM%20%22Software%5CNazwa%20Gry%22%20%22Install_Dir%22%0A%0A%3B%20Request%20application%20privileges%20for%20Windows%20Vista%0ARequestExecutionLevel%20user
; The name of the installer Name "Nazwa Gry"
Proste, "Nazwa Gry" to nazwa instalatora, najlepiej po prostu wpiszcie nazwÄ™ swojej gry.
; The file to write OutFile "Nazwa Gry.exe"
Tutaj możemy zmienić nazwę pliku instalatora, który zostanie potem utworzony.
The default installation directory InstallDir "$PROGRAMFILES\Nazwa Gry"
Tu jak łatwo się domyślić wybieramy domyślne miejsce w którym ma być zainstalowana gra, "$PROGRAMFILES" to skrót do "X:\Program Files". Tu także zmieniamy "Nazwa gry" na cokolwiek chcemy.
; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\Nazwa Gry" "Install_Dir"
Po prostu zmieńmy "Nazwa gry" na coś innego, dzięki tej linijce w rejestrze tworzony jest klucz który sprawdza czy gra aby przypadkiem nie jest już zainstalowana.
; Request application privileges for Windows Vista RequestExecutionLevel user
Tutaj możemy zmienić "user" na "admin", wtedy aby zainstalować grę użytkownik będzie musiał posiadać prawa administratora systemu.
;--------------------------------
; Interface Configuration
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" ; optional
!define MUI_ABORTWARNING%3B--------------------------------%0A%3B%20Interface%20Configuration%0A%0A%21define%20MUI_HEADERIMAGE%0A%21define%20MUI_HEADERIMAGE_BITMAP%20%22%24%7BNSISDIR%7D%5CContrib%5CGraphics%5CHeader%5Cnsis.bmp%22%20%3B%20optional%0A%21define%20MUI_ABORTWARNING
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\nsis.bmp" ; optional
W tej linijce możemy zmienić ten oto obrazek:
 na jakikolwiek inny. Pamiętajmy jednak że musi on mieć wymiary 150x57 px. Dla przykładu logo TSoT'a:
 "${NSISDIR}" to ścieżka do miejsca w którym zainstalowaliśmy jest NSIS. Powiedzmy że posiadamy obrazek o nazwie "logo.bmp" na pulpicie, wtedy linijka z tym kodem powinna wyglądać tak:
!define MUI_HEADERIMAGE_BITMAP "$DESKTOP\logo.bmp" %21define%20MUI_HEADERIMAGE_BITMAP%20%22%24DESKTOP%5Clogo.bmp%22
;--------------------------------
; Pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "License.txt"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
# These indented statements modify settings for MUI_PAGE_FINISH
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_RUN_NOTCHECKED
!define MUI_FINISHPAGE_RUN_TEXT "Uruchom grÄ™."
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH %3B--------------------------------%0A%3B%20Pages%0A%0A%21insertmacro%20MUI_PAGE_WELCOME%0A%21insertmacro%20MUI_PAGE_LICENSE%20%22License.txt%22%0A%21insertmacro%20MUI_PAGE_COMPONENTS%0A%21insertmacro%20MUI_PAGE_DIRECTORY%0A%21insertmacro%20MUI_PAGE_INSTFILES%0A%23%20These%20indented%20statements%20modify%20settings%20for%20MUI_PAGE_FINISH%0A%21define%20MUI_FINISHPAGE_NOAUTOCLOSE%0A%21define%20MUI_FINISHPAGE_RUN%0A%21define%20MUI_FINISHPAGE_RUN_NOTCHECKED%0A%21define%20MUI_FINISHPAGE_RUN_TEXT%20%22Uruchom%20gr%C4%99.%22%0A%21define%20MUI_FINISHPAGE_RUN_FUNCTION%20%22LaunchLink%22%0A%21insertmacro%20MUI_PAGE_FINISH%0A%0A%21insertmacro%20MUI_UNPAGE_WELCOME%0A%21insertmacro%20MUI_UNPAGE_CONFIRM%0A%21insertmacro%20MUI_UNPAGE_INSTFILES%0A%21insertmacro%20MUI_UNPAGE_FINISH
!insertmacro MUI_PAGE_LICENSE "License.txt"
Ścieżka do pliku ".txt" licencji programu. Tylko trzeba ją jeszcze stworzyć... Także otwórzcie notatnik i do dzieła (...)! Gdy skończycie to zapiszcie waszą prace waszą pracę jako plik "Licence.txt" w folderze z grą. Jeśli nie macie pomysłu na licencje, bądź jest wam zbędna to wtedy po prostu usuńcie tą linijkę.
!define MUI_FINISHPAGE_RUN_TEXT "Uruchom grÄ™."
Tu możemy jeszcze zmienić "Uruchom grę." na cokolwiek innego, tekst ten jest wyświetlany pod koniec instalacji.
;--------------------------------
; Installer Sections
Section "Nazwa Gry" SecDummy
SectionIn RO
; Set output path to the installation directory.
SetOutPath $INSTDIR
; Put file there
File "Game.exe" "Game.ini" "Game.rgssad"
; Write the installation path into the registry
WriteRegStr HKLM "SOFTWARE\Nazwa Gry" "Install_Dir" "$INSTDIR"
; Write the uninstall keys for Windows
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "DisplayName" "Nazwa Gry"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "UninstallString"
'"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "NoRepair" 1
WriteUninstaller "uninstall.exe"
SectionEnd %3B--------------------------------%0A%3B%20Installer%20Sections%0A%0ASection%20%22Nazwa%20Gry%22%20SecDummy%0A%0ASectionIn%20RO%0A%0A%3B%20Set%20output%20path%20to%20the%20installation%20directory.%0ASetOutPath%20%24INSTDIR%0A%0A%3B%20Put%20file%20there%0AFile%20%22Game.exe%22%20%22Game.ini%22%20%22Game.rgssad%22%0A%0A%3B%20Write%20the%20installation%20path%20into%20the%20registry%0AWriteRegStr%20HKLM%20%22SOFTWARE%5CNazwa%20Gry%22%20%22Install_Dir%22%20%22%24INSTDIR%22%0A%0A%3B%20Write%20the%20uninstall%20keys%20for%20Windows%0AWriteRegStr%20HKLM%20%22Software%5CMicrosoft%5CWindows%5CCurrentVersion%5CUninstall%5CNazwa%20Gry%22%20%22DisplayName%22%20%22Nazwa%20Gry%22%0AWriteRegStr%20HKLM%20%22Software%5CMicrosoft%5CWindows%5CCurrentVersion%5CUninstall%5CNazwa%20Gry%22%20%22UninstallString%22%20%0A%0A%27%22%24INSTDIR%5Cuninstall.exe%22%27%0AWriteRegDWORD%20HKLM%20%22Software%5CMicrosoft%5CWindows%5CCurrentVersion%5CUninstall%5CNazwa%20Gry%22%20%22NoModify%22%201%0AWriteRegDWORD%20HKLM%20%22Software%5CMicrosoft%5CWindows%5CCurrentVersion%5CUninstall%5CNazwa%20Gry%22%20%22NoRepair%22%201%0AWriteUninstaller%20%22uninstall.exe%22%0A%0ASectionEnd
Section "Nazwa Gry" SecDummy
"Nazwa gry" - to nazwa głównego komponentu instalacji (czyli naszej gry). Jak zwykle najlepiej jakby to była nazwa naszej gry.
; Put file there File "Game.exe" "Game.ini" "Game.rgssad"
Tu jak widać są podane pliki które instalator ma "zakodować" w sobie.
; Write the installation path into the registry WriteRegStr HKLM "SOFTWARE\Nazwa Gry" "Install_Dir" "$INSTDIR"
; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "DisplayName" "Nazwa Gry" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "UninstallString"
'"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" "NoRepair" 1 WriteUninstaller "uninstall.exe"
Tutaj po prostu pozmieniajcie wszędzie "Nazwa Gry" na to samo co wpisaliście w:
; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\[b]Nazwa Gry[/b]" "Install_Dir"
;--------------------------------
;Descriptions
;Language strings
LangString DESC_SecDummy ${LANG_POLISH} "Pliki niezbędne do uruchomienia gry."
;Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)
!insertmacro MUI_FUNCTION_DESCRIPTION_END%3B--------------------------------%0A%3BDescriptions%0A%0A%3BLanguage%20strings%0ALangString%20DESC_SecDummy%20%24%7BLANG_POLISH%7D%20%22Pliki%20niezb%C4%99dne%20do%20uruchomienia%20gry.%22%0A%0A%3BAssign%20language%20strings%20to%20sections%0A%21insertmacro%20MUI_FUNCTION_DESCRIPTION_BEGIN%0A%21insertmacro%20MUI_DESCRIPTION_TEXT%20%24%7BSecDummy%7D%20%24%28DESC_SecDummy%29%0A%21insertmacro%20MUI_FUNCTION_DESCRIPTION_END Ta część kodu odpowiada za "Opis" komponentów instalacji. Jako że jest to raczej zbędna rzecz, opis ten posiada więc jedynie głowny komponent - gra.
;--------------------------------
; Optional section (can be disabled by the user)
Section "Start Menu Shortcuts"
CreateDirectory "$SMPROGRAMS\Nazwa Gry"
CreateShortCut "$SMPROGRAMS\Nazwa Gry\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\Nazwa Gry\Nazwa Gry.lnk" "$INSTDIR\Game.exe" "" "$INSTDIR\Game.exe" 0
SectionEnd %3B--------------------------------%0A%3B%20Optional%20section%20%28can%20be%20disabled%20by%20the%20user%29%0A%0ASection%20%22Start%20Menu%20Shortcuts%22%0A%0ACreateDirectory%20%22%24SMPROGRAMS%5CNazwa%20Gry%22%0ACreateShortCut%20%22%24SMPROGRAMS%5CNazwa%20Gry%5CUninstall.lnk%22%20%22%24INSTDIR%5Cuninstall.exe%22%20%22%22%20%22%24INSTDIR%5Cuninstall.exe%22%200%0ACreateShortCut%20%22%24SMPROGRAMS%5CNazwa%20Gry%5CNazwa%20Gry.lnk%22%20%22%24INSTDIR%5CGame.exe%22%20%22%22%20%22%24INSTDIR%5CGame.exe%22%200%0A%0ASectionEnd
Section "Start Menu Shortcuts"
"Start Menu Shortcuts" - to nazwa komponentu odpowiedzialnego za dodanie skrótu do gry w menu start.
CreateDirectory "$SMPROGRAMS\Nazwa Gry"
"Nazwa Gry" - to nazwa folderu gry w menu start.
CreateShortCut "$SMPROGRAMS\Nazwa Gry\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
Zmieniamy "Nazwa Gry" na nazwę folderu którą wpisaliśmy powyżej.
CreateShortCut "$SMPROGRAMS\Nazwa Gry\Nazwa Gry.lnk" "$INSTDIR\Game.exe" "" "$INSTDIR\Game.exe" 0
To samo, tyle że "Nazwa Gry.lnk" to nazwa skrótu do naszej gry, nazwa ta może być dowolna.
;--------------------------------
; Optional section (can be disabled by the user)
Section "Desktop Shortcut"
CreateShortCut "$DESKTOP\Nazwa Gry.lnk" "$INSTDIR\Game.exe" "" "$INSTDIR\Game.exe" 0
SectionEnd %3B--------------------------------%0A%3B%20Optional%20section%20%28can%20be%20disabled%20by%20the%20user%29%0A%0ASection%20%22Desktop%20Shortcut%22%0A%0ACreateShortCut%20%22%24DESKTOP%5CNazwa%20Gry.lnk%22%20%22%24INSTDIR%5CGame.exe%22%20%22%22%20%22%24INSTDIR%5CGame.exe%22%200%0A%0ASectionEnd
Section "Desktop Shortcut"
"Desktop Shortcut" - to nazwa komponentu odpowiedzialnego za dodawanie skrótu na pulpicie.
CreateShortCut "$DESKTOP\Nazwa Gry.lnk" "$INSTDIR\Game.exe" "" "$INSTDIR\Game.exe" 0
"Nazwa Gry.lnk" - to nazwa skrótu który będzie utworzony na pulpicie.
;--------------------------------
; Uninstaller
Section "Uninstall"
; Remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry"
DeleteRegKey HKLM SOFTWARE\Nazwa Gry
; Remove files and uninstaller
Delete $INSTDIR\game.exe
Delete $INSTDIR\game.ini
Delete $INSTDIR\game.rgssad
Delete $INSTDIR\uninstall.exe
; Remove shortcuts, if any
Delete "$SMPROGRAMS\Nazwa Gry\*.*"
Delete "$DESKTOP\Nazwa Gry.lnk"
; Remove directories used
RMDir "$SMPROGRAMS\Nazwa Gry"
RMDir "$INSTDIR"
SectionEnd %3B--------------------------------%0A%3B%20Uninstaller%0A%0ASection%20%22Uninstall%22%0A%0A%3B%20Remove%20registry%20keys%0ADeleteRegKey%20HKLM%20%22Software%5CMicrosoft%5CWindows%5CCurrentVersion%5CUninstall%5CNazwa%20Gry%22%0ADeleteRegKey%20HKLM%20SOFTWARE%5CNazwa%20Gry%0A%0A%3B%20Remove%20files%20and%20uninstaller%0ADelete%20%24INSTDIR%5Cgame.exe%0ADelete%20%24INSTDIR%5Cgame.ini%0ADelete%20%24INSTDIR%5Cgame.rgssad%0ADelete%20%24INSTDIR%5Cuninstall.exe%0A%0A%3B%20Remove%20shortcuts%2C%20if%20any%0ADelete%20%22%24SMPROGRAMS%5CNazwa%20Gry%5C%2A.%2A%22%0ADelete%20%22%24DESKTOP%5CNazwa%20Gry.lnk%22%0A%0A%3B%20Remove%20directories%20used%0ARMDir%20%22%24SMPROGRAMS%5CNazwa%20Gry%22%0ARMDir%20%22%24INSTDIR%22%0A%0ASectionEnd
; Remove registry keys DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Nazwa Gry" DeleteRegKey HKLM SOFTWARE\Nazwa Gry
Tutaj "Nazwa Gry" zmieniamy na to samo co wpisaliśmy w:
; Write the installation path into the registry WriteRegStr HKLM "SOFTWARE\Nazwa Gry" "Install_Dir" "$INSTDIR"
; Write the uninstall keys for Windows WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\[b]Nazwa Gry[/b]" "DisplayName" "[b]Nazwa Gry[/b]" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\[b]Nazwa Gry[/b]" "UninstallString"
'"$INSTDIR\uninstall.exe"' WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\[b]Nazwa Gry[/b]" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\[b]Nazwa Gry[/b]" "NoRepair" 1 WriteUninstaller "uninstall.exe"
oraz
; Registry key to check for directory (so if you install again, it will ; overwrite the old one automatically) InstallDirRegKey HKLM "Software\[b]Nazwa Gry[/b]" "Install_Dir"
Na koniec:
; Remove shortcuts, if any Delete "$SMPROGRAMS\Nazwa Gry\*.*" Delete "$DESKTOP\Nazwa Gry.lnk"
; Remove directories used RMDir "$SMPROGRAMS\Nazwa Gry" RMDir "$INSTDIR"
"Nazwa Gry" zmieniamy na to co wpisaliśmy przy nazwie folderu menu start gry, a do "Nazwa Gry.lnk" wklejamy poprzednio wpisaną nazwę skrótu na pulpicie.
- Okey jakoś przebrnęliśmy przez to. Teraz zapisujemy zmiany i zamykamy notatnik.
- Na koniec wybieramy "Script"=>"Recompile" i jeśli nic nie zepsuliśmy to możemy przetestować instalator klikając na "Test Installer".
To wszystko! Jak widać stworzenie własnego instalatora wcale nie jest trudną rzeczą. =] Za jakiś czas przedstawię wam jeszcze dodatkowe informacje dotyczące nieco bardziej zaawansowanej edycji instalatora. Pozdrawiam, DC. |