Windows CE CAB Wizard - budowa pliku *.inf
Aby z艂o偶y膰 plik instalacyjny CAB, mo偶na pos艂u偶y膰 si臋 p艂atnym oprogramowaniem w stylu WinCE CAB Manager, mo偶na jednak pos艂u偶y膰 si臋 darmowym narz臋dziem od samego Microsoftu: Windows CE CAB Wizard, kt贸re mo偶na znale藕膰 w postaci za艂膮cznika tutaj.
CAB Wizard jest narz臋dziem, kt贸ry na podstawie dostarczonego pliku *.inf tworzy plik instalacyjny. W sk艂ad pakietu wchodzi r贸wnie偶 ma艂e narz臋dzie o nazwie Cabinet Maker, kt贸re r贸wnie偶 przydaje si臋 w pewnych sytuacjach (np. gdy chcemy utworzy膰 plik CAB z naszymi ustawieniami poczty itp.).
Jak wida膰, opr贸cz 藕r贸d艂owego pliku *.inf, mo偶emy r贸wnie偶 poda膰 pliki w formacie ProvXML, kt贸re mog膮 by膰 wykonane zar贸wno przed sam膮 instalacj膮, jak i po jej zako艅czeniu.
Jak jest zbudowany plik *.inf? Jest to plik o typowej strukturze INI, czyli jest podzielony na sekcje, a w ka偶dej z nich mamy pary zmienna=warto艣膰. Zanim jednak om贸wimy poszczeg贸lne sekcje, przytoczmy makra przydatne przy definiowaniu 艣cie偶ek do plik贸w. U偶ywanie tych makr jest o tyle uzasadnione, 偶e w r贸偶nych wersjach j臋zykowych, same fizyczne katalogi mog膮 si臋 r贸偶nie nazywa膰 - natomiast u偶ywaj膮c tych makr unikniemy problem贸w z tym zwi膮zanych:
Makra 艣cie偶ek systemowych:
%CE1% | Program Files |
---|---|
%CE2% | Windows |
%CE4% | Windows\StartUp |
%CE5% | My Documents |
%CE8% | Program Files\Games |
%CE11% | Windows\Start Menu\Programs |
%CE14% | Windows\Start Menu\Programs\Games |
%CE15% | Windows\Fonts |
%CE17% | Windows\Start Menu |
Poni偶ej pokr贸tce przytocz臋 opisy poszczeg贸lnych sekcji i ich zawarto艣ci, wraz z kr贸tkimi przyk艂adami:
Sekcje pliku INF:
Version | Wydawca aplikacji i jej wersja |
---|---|
CEStrings | Definicje nazw aplikacji i katalog贸w |
Strings | Definicje innych zmiennych tekstowych |
CEDevice | Platforma docelowa |
DefaultInstall | Domy艣lna instalacja aplikacji |
CopyFiles | Pliki do skopiowania na urz膮dzenie |
AddReg | Klucze i warto艣ci, kt贸re b臋d膮 dodane do rejestru |
CEShortcuts | Skr贸ty, kt贸re zostan膮 utworzone |
SourceDisksNames | Nazwy i 艣cie偶ki do katalog贸w z plikami 藕r贸d艂owymi |
SourceDisksFiles | Nazwy i 艣cie偶ki do plik贸w 藕r贸d艂owych |
DestinationDirs | Nazwy i 艣cie偶ki katalog贸w docelowych |
* Version
Signature = "$Chicago$" |
---|
Provider = "utak3r" |
CESignature = "$Windows CE$" |
* CEStrings
AppName="M贸j super program" |
---|
InstallDir=%CE1%\%AppName% |
* Strings
reg_path = Software\utak3r\MySuperApp |
---|
* CEDevice
VersionMin = 4.0 |
---|
VersionMax = 5.99 |
BuildMax = -536870912 |
* DefaultInstall
CopyFiles = CopyToInstallDir,CopyToWindows |
---|
AddReg = RegSettings |
CEShortcuts = Shortcuts |
* CopyFiles
[DefaultInstall] CopyFiles = CopyToInstallDir [CopyToInstallDir] "aplikacja_ok.exe",aplikacja.exe,,0x00000001 "helpik wielki.htm",helpik.htm,,0x80000000 |
---|
Flagi opisuj膮ce zachowanie systemu przy kopiowaniu plik贸w:
COPYFLG_WARN_IF_SKIP | 0x00000001 | Ostrzegaj usera, je艣li w wyniku b艂臋du plik b臋dzie pomini臋ty |
---|---|---|
COPYFLG_NOSKIP | 0x00000002 | Nie pozwalaj na pomini臋cie pliku |
COPYFLG_NO_OVERWRITE | 0x00000010 | Nie nadpisuj pliku w katalogu docelowym (np. plik konfiguracyjny z poprzedniej wersji programu) |
COPYFLG_REPLACEONLY | 0x00000400 | Kopiuj plik tylko wtedy, gdy w katalogu docelowym istnieje ju偶 taki |
CE_COPYFLG_NO_DATE_DIALOG | 0x20000000 | Nie kopiuj, je艣li plik w katalogu docelowym jest nowszy (np. biblioteki) |
CE_COPYFLG_NODATECHEC'K' | 0x40000000 | Nie sprawdzaj dat przy nadpisywaniu plik贸w |
CE_COPYFLG_SHARED | 0x80000000 | Tw贸rz referencj臋 do pliku wsp贸艂dzielonego |
AddReg
[DefaultInstall] AddReg = RegSettings [Strings] reg_path = Software\utak3r\MojaAplikacja [RegSettings] HKLM,%reg_path%,,0x00000000,alpha HKLM,%reg_path%,test,0x00010001,3 HKLM,%reg_path%\new,another,0x00010001,6 |
---|
Skr贸ty opisuj膮ce ga艂臋zie g艂贸wne rejestru:
HKCR HKEY_CLASSES_ROOT
HKCU HKEY_CURRENT_USER
HKLM HKEY_LOCAL_MACHINE
Flagi oznaczaj膮ce spos贸b zachowania systemu przy dodawaniu nowych wpis贸w do rejestru:
FLG_ADDREG_NOCLOBBER | 0x00000002 | Je艣li klucz istnieje - nie nadpisuj go. T臋 flag臋 mo偶na 艂膮czy膰 z poni偶szymi |
---|---|---|
FLG_ADDREG_TYPE_SZ | 0x00000000 | Typ REG_SZ |
FLG_ADDREG_TYPE_MULTI_SZ | 0x00010000 | Typ REG_MULTI_SZ. Poszczeg贸lne stringi przedzielamy przecinkami |
FLG_ADDREG_TYPE_BINARY | 0x00000001 | Typ REG_BINARY. Warto艣ci liczbowe, przedzielone przecinkami, jednobajtowe, bez przedrostka 0x |
FLG_ADDREG_TYPE_DWORD | 0x00010001 | Typ REG_DWORD |
* CEShortcuts
[DefaultInstall] CEShortcuts = Shortcuts [DestinationDirs] Shortcuts = 0,%CE11%\MojaAplikacja [Shortcuts] Wielka Aplikacja,0,aplikacja.exe |
---|
* SourceDisksNames
1 = ,"Kat1",,.\pliki |
---|
* SourceDisksFiles
Kod: [SourceDisksFiles] aplikacja.exe = 1 helpik.htm = 1 |
---|
* DestinationDirs
|
---|