Środa, 23 Maj 2012, 21:20

Autor Wątek: [TUT] Windows CE CAB Wizard - budowa pliku *.inf  (Przeczytany 2641 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8262
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
[TUT] Windows CE CAB Wizard - budowa pliku *.inf
« dnia: Środa, 23 Wrzesień 2009, 15:13 »
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 załączniku do tego opisu.

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.).

CAB Wizarda wywołujemy z linii poleceń:

Usage:  Cabwiz inf_file [/dest dest_dir] [/err err_file] [/nouninstall]
[/prexml xml_file] [/postxml xml_file] [/cpu cpu_type [cpu_type]]
[/platform  platform_name] [/compress]

inf_file        INF source file to use
dest_dir        absolute dest dir for CAB files
err_file        error file
xml_file        extra xml to pre/append onto _setup.xml
cpu_type        cpu types to support in the INF file
platform_name   the name of the platform to support in the INF file
compress        enables compression of CAB contents
nouninstall     do not allow this application to be uninstalled

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:
\"root" - katalog główny urządzenia
%CE1%Program Files
%CE2%Windows
%CE4%Windows\StartUp
%CE5%My Documents
%CE6%Program Files\Accessories
%CE7%Program Files\Communication
%CE8%Program Files\Games
%CE9%Program Files\Pocket Outlook
%CE10%Program Files\Office
%CE11%Windows\Start Menu\Programs
%CE12%Windows\Start Menu\Programs\Accessories
%CE13%Windows\Start Menu\Programs\Communication
%CE14%Windows\Start Menu\Programs\Games
%CE15%Windows\Fonts
%CE16%Windows\Recent
%CE17%Windows\Start Menu
%CE18%
Default Volume, czyli "root" urządzenia, katalog "\"
%CE19%Application Data

Poniżej pokrótce przytoczę opisy poszczególnych sekcji i ich zawartości, wraz z krótkimi przykładami:

Sekcje pliku INF:
VersionWydawca aplikacji i jej wersja
CEStringsDefinicje nazw aplikacji i katalogów
StringsDefinicje innych zmiennych tekstowych
CEDevicePlatforma docelowa
DefaultInstallDomyślna instalacja aplikacji
CopyFilesPliki do skopiowania na urządzenie
AddRegKlucze i wartości, które będą dodane do rejestru
CEShortcutsSkróty, które zostaną utworzone
SourceDisksNamesNazwy i ścieżki do katalogów z plikami źródłowymi
SourceDisksFilesNazwy i ścieżki do plików źródłowych
DestinationDirsNazwy i ścieżki katalogów docelowych


  • Version
[Version]
Signature = "$Chicago$"
Provider   = "utak3r"
CESignature = "$Windows CE$"

  • CEStrings
[CEStrings]
AppName="Mój super program"
InstallDir=%CE1%\%AppName%

  • Strings
[Strings]
reg_path = Software\utak3r\MySuperApp

  • CEDevice
VersionMin = 4.0
VersionMax = 5.99
BuildMax = -536870912

  • DefaultInstall
[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_SKIP0x00000001Ostrzegaj usera, jeśli w wyniku błędu plik będzie pominięty.
COPYFLG_NOSKIP0x00000002Nie pozwalaj na pominięcie pliku.
COPYFLG_NO_OVERWRITE0x00000010Nie nadpisuj pliku w katalogu docelowym (np. plik konfiguracyjny z poprzedniej wersji programu)
COPYFLG_REPLACEONLY0x00000400Kopiuj plik tylko wtedy, gdy w katalogu docelowym istnieje już taki.
CE_COPYFLG_NO_DATE_DIALOG0x20000000Nie kopiuj, jeśli plik w katalogu docelowym jest nowszy (np. biblioteki)
CE_COPYFLG_NODATECHECK0x40000000Nie sprawdzaj dat przy nadpisywaniu plików
CE_COPYFLG_SHARED0x80000000Twó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:
HKCRHKEY_CLASSES_ROOT
HKCUHKEY_CURRENT_USER
HKLMHKEY_LOCAL_MACHINE

Flagi oznaczające sposób zachowania systemu przy dodawaniu nowych wpisów do rejestru:
FLG_ADDREG_NOCLOBBER0x00000002Jeśli klucz istnieje - nie nadpisuj go. Tę flagę można łączyć z poniższymi.
FLG_ADDREG_TYPE_SZ0x00000000Typ REG_SZ.
FLG_ADDREG_TYPE_MULTI_SZ0x00010000Typ REG_MULTI_SZ. Poszczególne stringi przedzielamy przecinkami.
FLG_ADDREG_TYPE_BINARY0x00000001Typ REG_BINARY. Wartości liczbowe, przedzielone przecinkami, jednobajtowe, bez przedrostka 0x.
FLG_ADDREG_TYPE_DWORD0x00010001Typ REG_DWORD.

  • CEShortcuts
[DefaultInstall]
CEShortcuts = Shortcuts

[DestinationDirs]
Shortcuts = 0,%CE11%\MojaAplikacja

[Shortcuts]
Wielka Aplikacja,0,aplikacja.exe

  • SourceDisksNames
[SourceDisksNames]
1 = ,"Kat1",,.\pliki

  • SourceDisksFiles
[SourceDisksFiles]
aplikacja.exe = 1
helpik.htm = 1

  • DestinationDirs
[DestinationDirs]
PlikiGlowne   = 0, %InstallDir%
PlikiPomocnicze   = 0, %InstallDir%\libs
« Ostatnia zmiana: Wtorek, 09 Listopad 2010, 22:50 wysłana przez utak3r »
Windows Mobile: a story of love and hate.


Offline Grimi

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 2809
  • Podziękowań: 75
  • Płeć: Mężczyzna
  • ♠ HTC Mozart ♥ Lark FreeBird 43.1
Odp: [TUT] Windows CE CAB Wizard - budowa pliku *.inf
« Odpowiedź #1 dnia: Środa, 23 Wrzesień 2009, 16:13 »
Bardzo duży plus, jak chcesz mogę go sparować z Wiki   ???
- Zobacz mnie na GoldenLine


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8262
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: [TUT] Windows CE CAB Wizard - budowa pliku *.inf
« Odpowiedź #2 dnia: Środa, 23 Wrzesień 2009, 16:17 »
Jasne, wrzucaj - to dobre miejsce  :ok:
Windows Mobile: a story of love and hate.


Offline Grimi

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 2809
  • Podziękowań: 75
  • Płeć: Mężczyzna
  • ♠ HTC Mozart ♥ Lark FreeBird 43.1
Odp: [TUT] Windows CE CAB Wizard - budowa pliku *.inf
« Odpowiedź #3 dnia: Środa, 23 Wrzesień 2009, 17:46 »
Może być?

http://mobiwiki.pl/Windows_CE_CAB_Wizard_-_budowa_pliku_*.inf

//poprawiłem na pełnego linka
ta gwiazdka na końcu w adresie może być problematyczna
« Ostatnia zmiana: Środa, 23 Wrzesień 2009, 19:56 wysłana przez mobi »
- Zobacz mnie na GoldenLine


Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8262
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: [TUT] Windows CE CAB Wizard - budowa pliku *.inf
« Odpowiedź #4 dnia: Środa, 23 Wrzesień 2009, 20:05 »
Może być?

....teraz już tak  :D   kilka poprawek naniosłem i jest git, dzięki  :ok:
Windows Mobile: a story of love and hate.


Offline Budniu

  • Administrator
  • Core
  • *****
  • Wiadomości: 6088
  • Podziękowań: 205
  • Płeć: Mężczyzna
  • HTC 7 Pro
Odp: [TUT] Windows CE CAB Wizard - budowa pliku *.inf
« Odpowiedź #5 dnia: Środa, 23 Wrzesień 2009, 20:11 »
Tak sobie czytam i widzę, że jestem jeszcze taki malutki :-[

Offline utak3r

  • Global Moderator
  • Core
  • *****
  • Wiadomości: 8262
  • Podziękowań: 137
  • Płeć: Mężczyzna
  • Samsung Ace, Raphael, Hermes, Universal i inne
    • Wirtualne Zacisze utak3ra
Odp: [TUT] Windows CE CAB Wizard - budowa pliku *.inf
« Odpowiedź #6 dnia: Wtorek, 09 Listopad 2010, 22:51 »
Uzupełniłem listę makr w pierwszym poście. Warto zwrócić uwagę na makro "%CE18%" :)
Windows Mobile: a story of love and hate.