Každý, kdo se pokouší alespoň trošku programovat, se jistě brzy dostane do fáze, kdy je potřeba hotový produkt nějakým způsobem a ve vhodné instalační formě distribuovat. Vytvoření takové instalace vám velice usnadní produkt InnoSetup.
Udělám tentokrát výjimku a program zhodnotím hned na začátku. Sami si poté na základě popisu (a vlastního zkoušení) můžete učinit obrázek.
Tak tedy, program je zcela zdarma, jsou dostupné i zdrojové kódy (pro ty, kteří si budou chtít na jeho základě vytvořit vlastní instalátor), existuje více jazykových verzí včetně češtiny (takže již žádné "anglické" instalace českých programů) a navíc je to program opravdu dobrý a užitečný.
Jistě, můžete namítnout, že podobné funkce nabízí i jiné programy (a též jsou zdarma), ale přesto považuji InnoSetup za jeden z nejlepších.
Pro případ, že by někteří vůbec netušili, oč se vlastně jedná, a z předchozích řádků jim jde hlava kolem, vysvětlím nejprve celý problém instalace. Tedy, poté co dokončíte samotnou aplikaci, je potřeba ji ve vhodné formě dodat uživatelům. Pokud se jedná o jediný spustitelný soubor, není o čem mluvit a jsme vlastně hotovi (případně jej můžete zkomprimovat např. do formátu zip). Jenže při trošku složitější aplikaci, která obsahuje též nápovědu, chcete zajistit asociaci datových souborů v systému, případně upravit registry, je na to již potřeba instalátor. Každý někdy jednou něco instaloval, takže dobře víte, oč jde. Obvykle se vybere adresář, kam se má aplikace nainstalovat, případně některá další nastavení, a instalátor poté všechny potřebné soubory rozbalí, nakopíruje do zvolené složky a provede další zmíněné operace. V neposlední řadě též vytvoří ikonky na ploše, v menu start a podobně a také umožní korektní odinstalaci produktu. A právě programy, které vytvářejí tyto instalace (a jejichž jednoho zástupce si dnes představíme), udělají toto všechno za vás. Ze souborů vaší aplikace tedy udělají jeden zkomprimovaný spustitelný soubor (např. setup.exe), po jehož spuštění se objeví u většiny aplikací podobně vyhlížející instalační procedura.
Obecně se dá říci, že u těchto programů na tvorbu instalací existuje dvojí přístup. Buď se jedná o jakéhosi průvodce (wizarda), který vás provede jednotlivými kroky, ve kterých určujete soubory instalace, různé nadpisy a popisky (zkrátka grafický vzhled) a další nastavení, a poté všechno sám vytvoří. Druhý způsob, který je možná určen pro pokročilejší uživatele, zase pracuje se skripty patřičného formátu, které vytvoří uživatel (ale není to opravdu nic složitého, to si ukážeme) a které hodně připomínají například INI soubory. Výhoda je v tom, že tyto programy obvykle nabízejí zdatnějším uživatelům větší možnost konfigurace a přesnější ovlivnění výsledného instalačního exe souboru.
Pojďme však nyní již k samotnému popisu programu InnoSetup. Jeho historie sahá až do roku 1997; během tohoto vývoje se vyvinul ve velice zdatnou a konkurenceschopnou aplikaci, která nabízí zdarma většinu funkcí komerčních produktů (jako třeba InstallShield atd...). Autor programu Jordan Russell odvedl opravdu kus práce.
Jak jsem již zmínil, program patří mezi druhou skupinu, protože používá skripty. Avšak od verze 2.0 obsahuje také integrovaného průvodce, který vám většinu skriptu napíše sám, takže se vlastně tento program již zařadil i do té první skupiny. Samotný program tedy vypadá jako jednoduchý textový editor, podobný Poznámkovému bloku (ostatně nic vám nebrání použít na psaní skriptů i Poznámkový blok), do něhož skript napíšete a poté z menu vyberete položku Compile, čímž se vytvoří vlastní instalace. Instalační průvodce, který bude takto připojen k vaší aplikaci, vypadá z vizuálního hlediska stejně jako průvodce, na jaké jste asi zvyklí (viz obrázky). Vybrat si můžete mezi klasickým vzhledem a "novým" vzhledem ve stylu Windows 2000.
A nyní se dostáváme k samotné podstatě – možnostem skriptování. Ty jsou opravdu rozsáhlé, pro podrobnější informace si přečtěte přímo nápovědu aplikace. Jen dodávám, že kromě běžných nastavení defaultního adresáře, změny registrů, nastavení asociací souborů, nastavení popisků atd... můžete také využít pokročilých možností, jako je detekce systému a následné provedení/neprovedení instalace, registrace DLL/OCX knihoven, porovnávání verze programu... Vše se dá pochopitelně dokonale odinstalovat (což není zrovna vlastnost některých ostatních instalátorů). Samozřejmostí je, že si program poradí se sdílenými soubory či soubory, které jsou momentálně používány.
Podporovány jsou všechny 32bitové verze Windows, tedy včetně XP, ovšem pro zájemce je stále dostupná i stará verze 16bitová. Existuje řada různých jazykových "plug-inů", které můžete mít všechny v jednom adresáři a pouhou změnou jednoho parametru uvnitř instalačního skriptu se vybere požadovaný jazyk (tím pádem se dají snadno vytvářet různé jazykové verze se stejným skriptem). Existuje rovněž řada pomůcek od jiných autorů (tzv. Third-Party Files), které se snaží původní program vylepšit (např. výborný Inno Setup Extensions), nebo usnadnit práci při tvorbě skriptů (řada editorů a průvodců). Odkazy na tyto další doplňující produkty naleznete taktéž na straně autora programu (viz níže).
Jak tedy vypadá část ukázkového instalačního skriptu? Není to opravdu nic složitého a po přečtení nápovědy se do jejich tvorby brzo dostanete. Navíc je program dodáván s několika základními skripty na ukázku, takže pokud nebudete potřebovat žádné pokročilejší funkce a spokojíte se s "běžnou" instalací, můžete svůj první skript vytvořit pouhou modifikací těch ukázkových. Samotný editor vám ještě pomáhá barevným odlišením jednotlivých "příkazů" podobně jako třeba různé programátorské či HTML editory.
Takto vypadá jednoduchý skript. Je vytvořen zcela automaticky pomocí průvodce a bude použitelný pro většinu vašich aplikací:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
[Setup]
AppName=Náš program
AppVerName=Náš program 1.5
AppPublisher=Naše firma, s.r.o.
AppPublisherURL=http://www.nasefirma.cz
AppSupportURL=http://www.nasefirma.cz
AppUpdatesURL=http://www.nasefirma.cz
DefaultDirName={pf}\Náš program
DefaultGroupName=Náš program
; uncomment the following line if you want your installation to run on NT 3.51 too.
; MinVersion=4,3.51
[Tasks]
Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; MinVersion: 4,4
[Files]
Source: "C:\Inno Setup 2\Samples\MyProg.exe"; DestDir: "{app}"; CopyMode: alwaysoverwrite
[Icons]
Name: "{group}\Náš program"; Filename: "{app}\MyProg.exe"
Name: "{userdesktop}\Náš program"; Filename: "{app}\MyProg.exe"; MinVersion: 4,4; Tasks: desktopicon
[Run]
Filename: "{app}\MyProg.exe"; Description: "Launch Náš program"; Flags: nowait postinstall skipifsilent
Jak vidíte, struktura je velice podobná klasickým INI souborům. Jsou vidět jednotlivé sekce, které se týkají konkrétní oblasti instalace (např. název a další signatury, seznam souborů patřících do instalace atd.), v nichž daným proměnným přiřadíte patřičnou hodnotu. Takto (průvodcem) vytvořený základní skript již podle nápovědy snadno upravíte a doplníte o další možnosti.
Co říci závěrem? Pokud potřebuje pro své (byť třeba nekomerční) aplikace rychle vytvořit profesionálně vyhlížející instalátor s množstvím výborných funkcí, InnoSetup vám dobře poslouží. Program včetně zdrojového kódu (v Delphi) si můžete stáhnout na JRSoftware.