Computerra telepítő szerelő

Létrehozása egy egyszerű telepítő szerelő

Az egyik a cikkek I tárgyalt létrehozását egy telepítő program (setup.exe) a InstallShield programot. Igen, még InstallShield Express-változat a program lehetővé teszi, hogy viszonylag rövid idő alatt, hogy hozzon létre egy rugalmas program telepítését. Ha InstallShield, akkor több időre van szüksége, hogy obmozgovaniya készítmény egyes programok csoportban, mint a teremtés, a telepítő.

De mi van, ha meg kell írni egy egyszerű telepítő a mi kis programot? Nem kell a különböző típusú berendezések (Jellemző, Compact vagy Custom), a program nem használja a BDE, már csak három fájlt: magát a programot, az adatállomány és a súgó fájlt. Ez tanácsos használni erre a célra InstallShield? Nem hiszem.

A telepítéshez a kisebb programok használhatják a Windows telepítő fájlokat. Előfordult már telepítette az illesztőprogramot az eszköz? Új eszköz felismerési varázsló lekérdezi a készülék INF-fájl, ami tartalmazza az összes információt a vezetőnek: eszköz neve, típusa, változata a vezető, a szükséges fájlokat és információkat szeretne hozzáadni a Windows rendszerleíró adatbázisában. Mi lehet írni ugyanazt INF-fájl, amely telepíti a szoftvert. Egy ilyen fájlt kell pár perc, különösen azért, mert akkor az alábbi példa alapján - csak helyettesíti az értéküket.

Telepítés INF-fájl (az adatok a telepítés) nagyon hasonlít az INI-fájlok. Ezek közé tartozik a szakaszok, amelyek leírják a lépéseket, amelyeket végre kell hajtania a telepítés során és eltávolítása programok, valamint egy listát a telepítendő fájlokat.

Kezdjük az elején. Mert határozottságot, mondjuk, hogy meg kell állítani base.exe programot a C: \ Program Files \ Base, másolás és base.hlp base.txt fájlokat a C: \ Program Files \ Base \ Help létrehozni egy programot a program csoport a menüben Windows és helyezze a tájékoztatást a program a Windows rendszerleíró úgy, hogy el lehet távolítani a szokásos Windows-eszközök. Természetesen a könyvtár nevét meg lehet változtatni.

Először is határozzuk meg a telepítés típusát (ez mi lesz az egyik - bázis). Készítsen base.inf fájlt (a fájl neve nem kell megegyeznie a program neve - Régebben base.exe nevét és base.inf az egyértelműség) és adjuk hozzá a következő sorokat.

A Version részben definiáljuk az aláírás és beállítása az osztály - „$ CHICAGO $” és bázissal. Nem kell változtatni nem. Strings a második részben azt határozza meg állandók, amely elérhető lesz az egész INF-fájl. Itt változtatni. Mindezek a változók fogjuk használni az egész INF-fájl. Strings rész van fenntartva, és ez nem nevezhető másképpen. Ez a szakasz nem szükségszerűen elején található a fájl - akkor írj még a közepén, de a végén.

Ezután számának meghatározása telepítő CD, a nevüket, valamint a fájlok listája:

A lemez neve jelenik meg a felhasználó, amikor a telepítő kéri annak telepítését egy másik meghajtóra. Mi nem használjuk a lemez címét (általában írásos Disk # 1 Disk #N, de már csak egy lemezt.), Így a felhasználó látni fogja csak a program nevét (% BASE%):

Computerra telepítő szerelő

Írhatsz ezt (ha két vagy több meghajtó)

Megjegyzés. Meg kell jegyeznem, hogy SourceDisksFiles szakasz fakultatív (ha egy lemez telepítő lemez, de nagyon kívánatos - így a rendszer azonnal felismeri, hogy mi a fájl hiányzik).

Általában a képet az 1. ábrán látható, a felhasználónak nem kell, hogy ha csak egy lemezt. Ahhoz, hogy egy képet az ablakon, azt el kellett távolítani base.txt fájlt kéri a program.

Most határozza meg a csoport beállításait. Ő csak egy - DefaultInstall (Szokásos telepítés):

Azonnal, ne feledjük, leírjuk a lépéseket, hogy eltávolítsa a programot. Mit tettünk? Másolja a fájlokat hozzá a csoport és az információt az adatbázisból. Tehát, hogy távolítsa el az összes ezt el kell távolítani, hiszen jelentést a telepítő DefaultUninstall rész:

Elmondtuk a telepítő, hogy szeretnénk beállítani Main.Files csoport (benne a exe-file), Help.Files (fájlok base.hlp és base.txt) és Inf.Files (base.inf). Miért kell telepíteni az INF-fájl? Ahhoz, hogy a Windows, mik a lépések, hogy távolítsa el a programot. Elvégre azt is olvassa el a DefaultUnInstall, és hol fog olvasni, ha nem telepíti az INF-fájl?

Visszatérve a telepítő: ő tudja, mit csoport kívánt fájlokat telepíteni, de nem tudja, hol van (:)). Elfelejtettük, hogy meghatározza a könyvtárak. helyes:

Main.Files csoport lesz telepítve a könyvtárban% BASEDIR% (C: \ Program Files \ Base), a csoport Help.Files - a% BASEDIR% \% HELPDIR% (C: \ Program Files \ Base \ Help) és INF-fájl telepíteni kell a könyvtárban \ INF (általában C: \ WINDOWS \ INF). Minden Windows rendszer tartók vannak számozva: 17 - egy könyvtár INF, 18 - HELP, 10 - WINDIR és így tovább.

A következő szint a finomítás - ez csak jelzi a fájlok, amelyek szerepelnek a csoport Main.Files, Help.Files és Inf.Files:

Vegye figyelembe, hogy a fájl csoport nevek meg kell egyeznie a nevét a szakaszok. Ugyanez vonatkozik az információt arról, hogyan adjunk információt a rendszerleíró adatbázist.

Most adja meg az információkat, amelyeket szeretnénk hozzáadni a rendszerleíró adatbázisban:
; Hozzáadott regisztrációs információt
[Base.Registry]
HKLM,% REGKEY%.
HKLM,% REGKEY% DisplayName ,,% BASE%
; C: \ WINDOWS \ Rundll.exe SETUPX.DLL, InstallHinfSection DefaultUninstall 4 C: \ WINDOWS \ INF \ base.inf
HKLM,% REGKEY%, UninstallString ,, "% 10% \ Rundll.exe SETUPX.DLL, InstallHinfSection DefaultUninstall 4% 17% \ base.inf"
HKCU,% softkey%.
HKCU,% funkciógomb%, Config ,,

Először összeadjuk% REGKEY% HKLM (HKEY_LOCAL_MACHINE), akkor% funkciógomb% -ban HKCU (HKEY_CURRENT_USER). sor
HKLM,% REGKEY%, UninstallString ,, "% 10% \ Rundll.exe SETUPX.DLL, InstallHinfSection DefaultUninstall 4% 17% \ base.inf"

Meg kell cserélni a következő sort:
C: \ WINDOWS \ Rundll.exe SETUPX.DLL, InstallHinfSection DefaultUninstall 4 C: \ WINDOWS \ INF \ base.inf

InstallHinfSection parancs megadja, hogy mely filejaban% 17% \ base.inf „must-olvasni a rendszer a program eltávolításának - DefaultUninstall.

Hozzá a regisztrációs információt fogják használni nem csak eltávolítani a programot, hanem megjeleníteni a telepített programok listájában:

Computerra telepítő szerelő

Most leírjuk a lépéseket, hogy létrehozzon DHSI Labs program csoport és annak eltávolítása: [Groups.Add]
Setup.ini, progman.groups ,, "groupx = .HSILABS%"
setup.ini, groupx ,, "% BASE%", „% 24% \ Program

[Groups.Del]
Setup.ini, progman.groups ,, "groupx = .HSILABS%"
setup.ini, groupx ,, „% BASE%

DHSI Labs csoport és a címke alapprogramja (% BASE%) jön létre. Way - "" % 24% \ Program

1 \ base \ base.exe "", az aktuális könyvtárat "" % 24% \ Program

1 \ Base "" description .ESC%”.

Ez minden. Ha nem lenne egy dolgot: az alapértelmezett művelet az INF-fájlok szerkesztéséhez őket egy notebook. „Telepítés” telepíthető rá kell kattintani a fájlra a jobb gombbal, és válassza ki a parancsot. Próbálja kifejtve, hogy a felhasználó, aki egész életében futtatásához használt SETUP.EXE.

Meg kell írni ezt a nagyon SETUP.EXE, ami fut a program telepítését. Ezt meg lehet tenni a Delphi (vagy CBuilde vagy bármilyen más nyelven), de akkor könnyebben használható InastallShield - egyszerű programokat Delphi súlya körülbelül 300K. Kiderült, hogy a cél nem szentesíti az eszközt. Most arra van szükség, és ugyanazt a szerelő, ami megjelenik a cím. Túl lusta írni kétszáz vonal fut az API függvények assembly nyelven? Tévedsz, nem 200, hanem csak 18, nem számítva üres sorok:

A szöveg a program annyira átlátszó, hogy nem igényel magyarázatot. De amellett, hogy ez a fájl, szükségünk lesz még pár: egy erőforrás fájlban (RC), a fájl (DEF) és a Makefile, amely leírja az intézkedés a szerelvény programot. Nem tudja használni a Makefile, mint a parancs végrehajtását kézzel, de a Makefil'om sokkal könnyebb.

Először hozzon létre egy erőforrás fájlban (install.rc):

Azt hiszem, elsősorban megmagyarázni azt, és mi nem éri meg - csak megváltoztatni a kívánt beállításokat. install.def file:

Legújabb fájl - install.mk (vagy csak egy Makefile):
!ha a $ d (MakeDir)
IM = $ (MakeDir) \ .. \ lib \ import32
!más
IM = import32
!endif

install.exe: install.obj install.res
tlink32 / x / Tpe / aa / c /V4.0 install.obj. $ (IM), install.def, install.res
törli install.obj
törli install.res

install.obj: install.asm
tasm32 / m / ml / q install.asm

install.res: install.rc
brc32 -r install.rc

Ahhoz, hogy épít mindezt, meg kell tasm32 (Borland TASM5). Ahhoz, hogy összeállítsa a változás, hogy a könyvtár, amely otthont ad az összes fájl és típusa:

ha létrehoz egy fájlt úgynevezett Makefile, mivel nem install.mk.

Ennek eredménye egy fájlt INSTALL.EXE súlya 6144 (6 KB!). Ha írsz egy kis fájlt a Delphi vagy CBuilder, mosom kezeimet.

Megadhatja nagyon jogos kérdés: ha létre egy telepítő segítségével InstallShield minden telepítési fájlok vannak csomagolva, hogy mit lehet itt csinálni? És ki akadályoz meg, hogy hozzon létre egy ZIP-fájlként, csomagold ki ASM (végrehajtani egy másik parancs - fut kicsomagolás), majd telepíteni a programot? Természetesen, ha a program nem fér el egy lemezre, még az archívumban, lesz némi nehézséget, de akkor már túl a feladat - létre kell hoznunk egy telepítő egy kis programot. Akkor, persze, meg a BDE segítségével az adott elv, de érdemes?