Inno Setup Polish Home Page

Official Home Page

Inno Setup

-Start

-Informacje

-Download

-Szybki start

-FAQ

-How-to's

-Dodatki

-Kontakt

 

 

 

Inno Setup
 
 

FAQ - Frequently Asked Questions,

czyli Systematycznie Zadawane Pytania

Ostatnia aktualizacja: 2003-02-04

Q1: Czy istnieje możliwość dodania instalowanego programu do grupy autostartu?
A1: Tak, aby tego dokonać należy umieścić w sekcji [Icons] następujący wpis:
Name: {userstartup}\Nazwa_programu; Filename: {app}\Mój_program.exe.

***

Poniżej znajduje się tłumaczenie oryginalnego FAQ:

Funkcjonalność

Problemy

Dodatkowe zadania podczas instalacji

Jak zainstalować...?

Kompatybilność

Różne


Funkcjonalność
Tłumaczenie komunikatów instalatora

Tłumaczenie komunikatów instalatora na inny język (niż angielski) nie wymaga modyfikowania kodu źródłowego programu. Po prostu wykonaj kopię pliku Default.isl (znajdującego się w katalogu programu Inno Setup) i zacznij edycję tekstów zawartych w tym plików. Proszę nie modyfikować bezpośrednio pliku Default.isl, gdyż podczas instalacji nowszej wersji programu zostanie on nadpisany. Zobacz temat "[Messages] Section" w pliku pomocy programu Inno Setup aby zapoznać się kilkoma ważnymi informacjami.
Kiedy skończysz swoje tłumaczenie dodaj dyrektywę "MessagesFile" do swojego skrypt w sekcji [Setup].

[Setup]
MessagesFile=compiler:Plik_Tłumaczenia.isl

Istnieje wiele tłumaczeń na różne języki (zobacz tu i do działu Download), a więc nie musisz robić tego sam - możesz skorzystać z gotowych plików.

Czy program wspiera MBCS (multi-byte character sets)?
Wraz z Inno Setup 2.0.6 pojawiło się całkowite wsparcie dla MBCS. Program sprawdza teraz poprawność wszystkich nazw plików i stałych.

Wcześniejsze wersje programu (przed 2.0.6) nie zawierają żadnego specjalnego wsparcia dla MBCS.

Czy Inno Setup będzie wykorzystywał mechanizm Windows Installer?
Jak na razie nie planuję wydania Inno Setup opartego na Windows Installer. Wsparcie dla Windows Installer wymagało by praktycznie całkowitego przepisania kodu programu - na co nie mam czasu ani ochoty.

Jak zmienić ikonę stworzonego instalatora?
Aktualnie nie jest to możliwe. Jakkolwiek zamierzam dodać taką możliwość w jednej z następnych wersji. Prawdopodobnie taka opcja będzie dostępna tylko w systemach Windows NT/2000, poniważ w systemach Windows 95/98 brak jest funkcji UpdateResource, która automatyzuje proces zmiany zasobów w skompilowanych plikach EXE.
Jak narazie istnieje kilka programów, np.: ReplaceIcon, Microangelo i Resource Hacker, które umożliwiają podmianę standardowej ikony.

Czy Inno Setup potrafi tworzyć warunkowe instalacje?
Tymczasowo nie jest to możliwe, ale będzie za pewien czas. Martijn Laan pracuje nad tym w jego My Inno Setup Extensions.

Jak na razie możliwa jest jedynie instalacja różnych plików w zależności od wersji zainstalowanego systemu.

Czy istnieje możliwość przeprowadzenia "instalacji z sieci"?
Nie, i jak na razie nie planuję dodania takiej możliwości.

Czy można dokonać "cichej" instalacji bez używania parametrów /silent lub /verysilent?
Nie, efekt dodania takiej możliwości mógłby się okazać bardzo nieporządany. Jeśli chcesz ograniczyć interakcję z użytkownikiem do minimum, powinieneś użyć dyrektywy Disable* w sekcji [Setup].

Czy można odczytać domyślną ścieżkę instalacji programu z rejestru?
Tak. Użyj stałej {reg:...} w DefaultDirName. Na przykład:

[Setup]
DefaultDirName={reg:HKLM\Software\Mój Program,Sciezka|{pf}\Mój Program}

Zobacz też do tematu "Constants" (Stałe) w pliku pomocy.

Problemy
Podczas kompilacji pojawia się błąd "Mismatched or misplaced quotes on parameter"

Ta informacja pojawia się zazwyczaj gdy nie zamkniesz cudzysłowu. Przeczytaj temat "Parameters in Sections" w pliku pomocy aby uzyskać więcej informacji.

Mój program nie potrafi odnaleźć swoich plików, kiedy jest uruchamiany ze skrótu
Twoja aplikacja prawdopodobnie nie określa ścieżki dostępu do plików, kiedy próbuje je otworzyć, a więc oczekuje ich w obecnym katalogu. Inno Setup domyślnie nie określa pola "Rozpocznij w" w tworzonych skrótach, oznacza to, że Windows sam wybierze obecny katalog, który zazwyczaj nie będzie zgodny z katalogiem twojej aplikacji. Aby naprawić ten błahy problem należy dodać parametr "WorkingDir: {app}" do wpisu w sekcji [Icons].

Jednak lepszym rozwiązaniem było by gdyby twoje aplikacje nie oczekiwały, że zostaną uruchomione ze szczególnego katalogu. Powinny one zawsze określać pełną ścieżkę do otwieranych plików. W Delphi lub C++Builder można pobrać pełną ścieżkę dostępu do pliku EXE twojego programu wywołując funkcję ExtractFilePath(ParamStr(0)). Dla przykładu, jeśli chcesz odwołać się do pliku "Plik.txt" powinieneś użyć: ExtractFilePath(ParamStr(0)) + 'Plik.txt'.

Czemu otrzymuję komunikat "The setup files are corrupted" podczas próby instalacji
Komunikat ten pojawia się tylko w przypadku gdy któryś z plików instalacyjnych (np. setup.exe, setup.1) ma niewłaściwą wielkość lub sumę kontrolną (CRC).

Może się to często zdarzać jeśli rozpowszechniasz swój program za pośrednictwem Internetu, z powodu niestabilnego połączenia.

Jeśli otrzymujesz taki komunikat podczas instalacji z CD-ROMu lub dyskietki, może to oznaczać że dany nośnik został uszkodzony lub posiadasz niesprawny napęd CD lub stację dysków.

Instalator wyświetla informację "Unable to register the DLL/OCX: DllRegisterServer export not found" / "Nie można zarejestrować DLL/OCX: Eksport DllRegisterServer nie został znaleziony"
Wiadomość ta oznacza, że określiłeś flagę "regserver" w pliku, który nie ma prawa być rejestrowany. Usuń tę flagę z danego wpisu w sekcji [Files] a informacja ta zniknie.

Uruchamiam plik wsadowy (.bat) w sekcji [Run], ale jego okno pozostaje na ekranie nawet po jego zakończeniu. Jak je zamknąć?
Od Tima Rude'go:
Najprostszym sposobem na to, aby plik wsadowy zamykał się automatycznie po zakończeniu, jest wyczyszczenie ekranu na samym końcu programu za pomocą komendy CLS.

--- plik wsadowy 1 ---
@echo off
echo Witaj Świecie
echo Ten plik wsadowy nie zamknie się po zakończeniu

--- plik wsadowy 2 ---
@echo off
echo Witaj Świecie
echo Ten plik zamknie się po zakończeniu
cls

Po deinstalacji, katalogi stworzone w procesie instalacji nadal pozostają
W przypadku Inno Setup w wersji poniżej 2.0.1, foldery które mają zostać usunięte muszą zostać określone w sekcji [Dirs] lub [UninstallDelete]. W nowszych wersjach programu, foldery wymienione jako wpisy w sekcji [Files] będą automatycznie usunięte przez deinstalator, o ile nie istniały przed procesem instalacji.

Zmieniłem dyrektywę DefaultDirName w moim skrypcie i teraz gdy uruchamiam instalator on chce instalować się w starym katalogu
To nie jest błąd w programie, tylko funkcja. Przy starcie instalator szuka w rejestrze czy ta sama aplikacja nie jest już zainstalowana i jeśli tak jest wykorzystuje katalog poprzedniej instalacji i wyświetla go w oknie wyboru katalogu zamiast tej podanej podczas tworzenia skryptu. Jeśli odinstalujesz zainstalowaną wcześniej aplikację i uruchomisz instalator ponownie, wszystko powinno ok. Jeśli chcesz wyłączyć tę funkcję ustaw dyrektywę UsePreviousAppDir na "no".

Mam dwa wpisy w sekcji [Icons] o takich samych nazwach, lecz tylko jeden z nich jest instalowany.
Dwa pliki nie mogą mieć tych samych nazw, dlatego też nie mogą istnieć skróty o identycznych nazwach.

Instalator nie czeka na zakończenie programów uruchomionych za pomocą wpisów do sekcji [Run]
Po pierwsze, sprawdź czy owe wpisy nie korzystają z flagi "nowait" lub "waituntilidle". Te flagi powodują, że instalator nie będzie czekał aż uruchomione procesy zakończą się.

Jeżeli nie korzystarz z tych flag i ciągle wygląda na to, że instalator nie czeka na ich zakończenie to dzieje się tak zapewne dlatego, że plik EXE, którego uruchamiasz, wywołuje inny proces (inne procesy) i kończy swoje działanie natychmiast. Powodując iż instalator myśli, że program się zakończył.

Prostym sposobem aby to sprawdzić jest uruchomienie programu - "START /WAIT Nazwa Programu.exe" z lini poleceń. Jeśli otrzymasz znak zachęty przed zakończeniem programu, to znalazłeś przyczynę błędu.

Dodatkowe zadania podczas instalacji
Tworzenie skrótów internetowych
Najpierw należy utworzyć plik o nazwie np. "mojastronawww.url" (ważne jest tylko rozserzenie) i umieścić w nim następujący tekst:
[InternetShortcut]
URL=http://adres.mojej.strony/

A następnie dodaj te linie w swoim skrypcie:

[Files]
Source: "mojastronawww.url"; DestDir: "{app}"

[Icons]
Name: "{group}\Odwiedź moją stronę w Internecie"; Filename: "{app}\mojastronawww.url"

Tworzenie skrótów na pasku Szybkie uruchamianie
Musisz posiadać Inno Setup w wersji minimum 1.3.11, oto przykład:
[Icons]
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Mój Program"; Filename: "{app}\MójProg.exe"

Ustawianie katalogu roboczego dla skrótu
Skorzystaj z parametru WorkingDir w sekcji [Icons].

Rejestrowanie nowych typów plików
Po pierwsze ustaw dyrektywę "ChangesAssociations" na "yes" w sekcji [SETUP]. Następnie utwórz w sekcji [Registry] następujące wpisy:
[Registry]
Root: HKCR; Subkey: ".myp"; ValueType: string; ValueName: ""; ValueData: "MyProgramFile"; Flags: uninsdeletevalue

gdzie ".myp" jest rejestrowanym rozszerzeniem. "MyProgramFile" jest wewnętrzną nazwą dla typu pliku przechowywaną w rejestrze. Zadbaj o to, aby podana przez ciebie nazwa była unikalna, w innym wypadku nadpiszesz dane innej aplikacji.

Root: HKCR; Subkey: "MyProgramFile"; ValueType: string; ValueName: ""; ValueData: "My Program File"; Flags: uninsdeletekey

"My Program File" (powyżej) jest nazwą typu pliku pokazywaną w Explorerze.

Root: HKCR; Subkey: "MyProgramFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\MYPROG.EXE,0"

"DefaultIcon" jest kluczem rejestru, który określa nazwę pliku zawierającego ikonę dla rejestrowanego rozszerzenia. ",0" określa pierwszą ikonę z pliku MYPROG.EXE (",1" oznacza 2 ikonę w pliku i tak dalej).

Root: HKCR; Subkey: "MyProgramFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\MYPROG.EXE"" ""%1"""

"shell\open\command" ten klucz rejestru określa program, który zostanie uruchomiony, kiedy dany typ pliku zostanie podwójnie kliknięty. Otaczające cudzysłowy w poleceniu są po to, aby długie nazwy plików działały poprawnie.

Modyfikacja zmiennych środowiskowych
W systemach Windows NT/2000/XP zmienne środowiskowe przechowywane są w rejestrze systemowym jako łańcuchy znaków, a więc można je modyfikować korzystając z sekcji [Registry].
Zmienne "ogólno-systemowe" znajdują się w kluczu:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Zmienne dotyczące konkretnego użytkownika są umieszczone w kluczu:
HKEY_CURRENT_USER\Environment

Natomiast w systemach Windows 95/98/Me, musisz zmodyfikować plik AUTOEXEC.BAT aby ustawić te zmienne. Inno Setup nie posiada żadnych funkcji przeznaczonych do tego, dlatego należy napisać mały program, który tego dokona i uruchomić go za pomocą sekcji [Run].

Ustawianie opcji "Zamknij po zakończeniu" dla programów MS-DOS
Inno Setup w wersji 1.3.15 i wyżej zawiera odpowiednie flagi"closeonexit" i "dontcloseonexit" w sekcji [Icons].

Tworzenie kopii zapasowych plików
Inno Setup nie posiada obecnie specyficznej funkcji, która by to robiła, lecz możesz sam stworzyć kopię pliku zanim go zastąpisz korzystając z sekcji [Files] jak w przykładzie:

Source: "{app}\MójProgram.exe"; DestDir: "{app}\backup"; Flags: external skipifsourcedoesntexist

Instalowanie różnych plików w zależności od wersji "Okien"
Możesz tego dokonać za pomocą parametrów MinVersion i/lub OnlyBelowVersion w poszczególnych wpisach. Zobacz temat "Common Parameters" w dokumentacji programu aby zapoznać się ze szczegółami.
Poniżej masz prosty przykład jak zainstalować jeden plik tylko na platformach NT (Windows NT/2000/XP) i drugi plik tylko na platformach 9x (Windows 95/98/Me):

[Files]
Source: "{app}\WinNT2000.exe"; DestDir: "{app}"; MinVersion: 0, 1
Source: "{app}\Win9598Me.exe"; DestDir: "{app}"; MinVersion: 1, 0

"0" oznacza nie instaluj; "1" oznacza instaluj na dowolnej wersji (tj. wersja 1.0 i późniejsze).

Uwaga: Powyższa technika nie jest ograniczona do sekcji [Files]; Parametry MinVersion i OnlyBelowVersion mogą być użyte w większości sekcji.

Przydzielanie uprawnień do plików, katalogów i kluczy rejestru.
Jak na razie IS nie ma wbudowanego wsparcia do tego typu operacji - ustawiania uprawnień, jednak możesz skorzystać z programu SetACL.exe. Oto przykłady:

[Files]
Source: "SetACL.exe"; DestDir: "{tmp}"

[Run]
; Przydziela uprawnienia "Modyfikacji" dla katalogu {app}\data dla "Każdego" użytkownika
Filename: "{tmp}\SetACL.exe"; Parameters: """{app}\data"" /dir /grant S-1-1-0 /change /sid"
; Przydziela uprawnienia do ustawinia wartości w kluczu HKEY_LOCAL_MACHINE\SOFTWARE\My Company\My Program dla "Każdego" użytkownika
Filename: "{tmp}\SetACL.exe"; Parameters: """MACHINE\SOFTWARE\My Company\My Program"" /registry /grant S-1-1-0 /set_val /sid"

Mój instalator potrzebuje zrobić coś więcej, czego Inno Setup nie potrafi zrobić.
Zobacz na stronie "How-To" artykuł Implementing Custom Functionality. (Jeszcze nie przetłumaczony!)

Jak zainstalować...?
Pliki OCX
Zalecany sposób instalacji plików OCX przedstawiony jest poniżej. (Uwaga: Poniższy wpis powinien znaleźć się w jednej lini.)
Source: "ComCtl32.ocx"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace sharedfile regserver

Pliki systemowe Visual Basica
Z VB 3.0 i wersjami wcześniejszymi jest prosto - poprostu należy skopiować odpowiedni plik VBRUN???.DLL do systemowego katalogu użytkownika i gotowe. Jak zrobić to z VB 4.0, nie wiem. Jak zrobić to z VB 5.0 lub 6.0, zobacz artykuł How-To (ang).

Pliki systemowe Visual C++ (np. MFC)
Zobacz artykuł How-To (ang).

COMCTL32.DLL
Najlepiej jest skierować użytkowników twojego programu na stronę Microsoftu aby pobrali odpowiednie uaktualnienie. Microsoft nie zezwala na dystrybucję samego pliku COMCTL32.DLL (z ważnego powodu), więc nie powinieneś umieszczać go w sekcji [Files].

BDE (Borland Database Engine)
Zobacz artykuł How-To (ang) - "Installing BDE for details on deploying the 32-bit version of BDE using Inno Setup".

MDAC, ADO, Jet, itp.
Zobacz artykuł How-To (ang).

Uwaga: Artykuły How-to's nie zostały jeszcze przetłumaczony, na końcu tej strony znajduje się adres do orginalnego dokumentu po angielsku.

Kompatybilność
Kompatybilność systemowa
Obecnie wspierane platformy to: Windows 95, 98, Me, NT 3.51, NT 4.0, i 2000.

Ostatnio wykorzystuje głównie (autor programu) system Windows 2000, więc zgodność Inno Setup z tym systemem jest sprawą priorytetową.

Kiedy pojawia się jakaś znacząca zmiana w kodzie programu, zazwyczaj jest on testowany osobiście przez autora na wszystkich wspieranych systemach.

16-bitowa wersja Inno Setup przestała być rozwijana od kiedy pojawiła się wersja 1.3. Mimo to, jeśli potrzebujesz 16-bitowego instalatora starsza wersja 1.2.x jest ciągle dostępna.

Zgodność z rokiem 2000
Inno Setup jest w pełni zgodny z rokiem 2000 od wersji 1.09. Poprzednie wersje Inno Setup są prawdopodobnie również odporne na problemem roku 2000, lecz nie wracałem do nich aby je przetestować.

Jedynym momentem, kiedy instalator korzysta z dat, jest porównywanie plików (tylko jeżeli używasz flagi "comparetimestamp"). 16-bitowa wersja programu Inno Setup 1.11i i późniejsze obsługują poprawnie pliki z datą aż do roku 2107, a ograniczenie to nałóżone jest przez 16-bit Windows API (wersje przed 1.11i obsługują daty do roku 2043). 32-bitowe wersje Inno Setup nie mają takich ograniczeń od wersji 1.09.

Windows NT/2000 a uprawnienia użytkownika
Typowa instalacja uruchomiona pod systemem Windows NT/2000 nie wymaga przywilejów administratora ani "power user". Poza pewnymi wyjątkami wymienionymi poniżej.

Rzeczy wymienione poniżej wymagają przywilejów admina pod Windows NT oraz 2000:

  • Korzystanie z dyrektywy "AdminPrivilegesRequired=yes" w sekcji [Setup]. Jeśli dyrektywa ta ustawiona jest na "yes" to instalator wyświetli informację o błędzie jeśli użytkownik nie posiada przywilejów administratora. (Domyślne ustawienie - "no".)
  • Korzystanie z flagi "restartreplace" w sekcji [Files]. Ustawienie tej flagi wymusza użycie funkcji MoveFileEx, która dokonuje zapisu do klucza "HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Session Manager". Zapisów do tego klucza może dokonywać tylko administrator.
  • Zapisywanie do klucza HKEY_USERS\.DEFAULT w sekcji [Registry]. Pozwolenie na zapis do tego klucza ma tylko administrator.

Rzeczy wymienione poniżej wymagają przywilejów admina albo "power user" w Windows 2000:

  • Korzystanie z flagi "regserver" w sekcji [Files]. W większości przypadków rejestrowanie bibliotek DLL wymaga zapisu do HKEY_CLASSES_ROOT.
  • Korzystanie z flagi "sharedfile" w sekcji [Files]. Ta flaga wymusza na Inno Setup utworzenie/zaaktualizowanie wartości w kluczu "HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows \CurrentVersion\ SharedDLLs". Zwyczajni użytkownicy nie mają pozwolenia na zapis do tych kluczy.
  • Korzystanie z parametru FontInstall w sekcji [Files].
  • Zapisywanie do dowolnego z podkluczy gałęzi HKEY_LOCAL_MACHINE lub HKEY_CLASSES_ROOT w sekcji [Registry]. Zwyczajni użytkownicy nie mają pozwolenia na zapis do tych kluczy.

Sam program Inno Setup nie potrzebuje dostępu do katalogu WINNT any do żadnych innych kluczy rejestru oprócz wymienionych powyżej.

Jakie są różnice w instalacji jeśli użytkownik nie ma przywilejów administaratora?

  • Wpis w rejestrze dla Dodaj/Usuń Programy tworzony jest pod gałęzią HKEY_CURRENT_USER zamiast pod HKEY_LOCAL_MACHINE. Tym sposobem tylko użytkownik, który instalował program, będzie widział go w Dodaj/Usuń Programy.
  • Stała "{group}" zawsze odwołuje się do profilu aktualnego użytkownika, w przeciwieństwie do profilu wszystkich użytkowników.
  • Wszystkie stałe "{common...}" są odpowiednikami dla stałych "{user...}".
  • Program może być deinstalowany przez użytkownika. (Kiedy program jest instalowany przez admina tylko on może go odinstalować.)

Różne
Czy są jakieś ograniczenia co do ilości plików (itp.) wchodzących w skład instalacji?
Inno Setup nie nakłada ograniczeń na ilość plików, skrótów, wpisów do rejestru, itp. jakie możesz dołączyć do instalacji. Jednakże, pamiętaj iż instalator potrzebuje pamięci dla każdego wpisu w skrypcie. Na przykład, mniej więcej 120 bajtów pamięci potrzeba dla każdego wpisu w sekcji [Files].
Całkowity rozmiar wszystkich plików wchodzących w skład instalacji obecnie nie może przekroczyć 2 GB, ponieważ program nie we wszystkich miejscach korzysta z 64-bitowych zmiennych. Jeżeli próbujesz użyć więcej niż 2 GB to kontrola wolnego mejsca na dysku i pasek postępu nie będą działać poprawnie. W przyszłości ograniczenie to zniknie.

Skąd wzieła się nazwa programu "Inno Setup"?
Nazwa programu jest skrótem od "Innovative Setup" (innowacyjny instalator). (Więc jego wymowa brzmi IN-NO, nie EYE-NO[EJ-NO].) Taką nazwę przypisałem programowi (autor) na samym początku i tak już zostało.

Czy program jest naprawdę darmowy?
Tak, program jest całkowicie darmowy, nawet do dystrybucji programów w celach komercyjnych. (Istnieją aby pewne ograniczenia dotyczące modyfikacji i redystrybucji kodu źródłowego programu; zobacz plik license.txt dołączony do zbioru z kodem źródłowym, aby dowiedzieć się więcej.)

Jeśli chciałbyś wynagrodzić autora programu Inno Setup odwiedź tę stronę.

Dlaczego powstał ten program?
Właśnie pisałem aplikację, która występowała w dwóch wersjach 16-bitowej skompilowanej w Delphi 1 i drugiej 32-bitowej skompilowanej w Delphi 2, i wkrótce uświadomiłem sobie, że nie mam żadnego porządnego setupu do tych programów. Delphi 1 nie posiada żadnego instalatora programów, natomiast Delphi 2 wyposażona była jedynie w nieporęczny InstallShield Express, ale on współpracował jedynie z 32-bitowymi "okienkami". Kupowanie instalatora tylko dla tego jednego programu wydawało się być absurdem. Przeszukałem więc Internet aby znaleźć jakiś darmowy instalator, niestety te które wyszukałem nie spotkały się z moimi potrzebami lub miały ubogi interfejs. Tak się stało, że miałem napisany instalator dla DOS-a, więc miałem pewne doświadczenie w tej dziedzinie. Postanowiłem zatem spróbować napisać prosty instalator dla systemu Windows samemu, zanim zdecyduję się na zakup jednego z komercyjnych produktów.

Dlaczego program jest darmowy?
Kiedy napisałem dosyć funkcjonalny setup uświadomiłem sobie, że wiele innych ludzi ma identyczny problem, jaki miałem ja. Na początku, program nie oferował zbyt wiele. Tym samym nie mógł konkurować z innymi sharwerowymi czy komercyjnymi instalatorami dostępnymi w tym czasie, więc zdecydowałem się udostępnić go innym za darmo. Nie było sensu abym trzymał go tylko dla siebie, więc napisałem dokumentację do programu oraz stworzyłem malutką stronę www. Nie ukryłem niczego specjalnego w kodzie źródłowym, więc dołączyłem go do gotowego programu. I tak właśnie narodził się program Inno Setup.

Co dzieje się gdy użytkownik przerywa instalację?
Kiedy użytkownik kliknie przycisk Anuluj, instalator próbuje cofnąc zmiany, których dokonał, w podobny sposób jak program deinstalowujący. W ten sposób częściowo zainstalowana aplikacja nie będzie zaśmiecała Twojego komputera.

***

Inne pomocne dokumenty:
Orginalne FAQ (po angielsku)
How-To's (również po angielsku)