W poprzedniej części stworzyłem instalator z interfejsem użytkownika. W tej części zbrandujemy instalator. Po pierwsze wymienię standardowe tło dla okna startowego:
W tym celu należ stworzyć własną bitmapę( niestety obsługiwany jest tylko format .bmp) koniecznie o rozmiarze 493 na 312, można również zmodyfikować istniejącą. Nowa bitmapa będzie stanowiła tło całego okna, poza paskiem przycisków.
Aby powiedzieć WiX, żeby podmienić tło należy zmodyfikować wartość zmiennej WixUIDialogBmp:
<WixVariable Id="WixUIDialogBmp" Value="WixUI_Bmp_Dialog.bmp" />
Następnie dodam własną licencję użytkownika i wymienię nagłówek okna (biały pasek z brązową płytką cd):
W tym celu stworzę bitmapę o rozmiarze 493 na 58 oraz plik Rich Text Format z tekstem mojej licencji. Podobnie jak w poprzednim przypadku muszę tylko ustawić odpowiednie zmienne:
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" /> <WixVariable Id="WixUIBannerBmp" Value="WixUI_Bmp_Banner.bmp" />
Po skompilowaniu okna mogą wyglądać np tak:
Jak dodatkowy bonus dodam możliwość uruchomienia instalowanej aplikacji na samym końcu:
W tym celu trzeba po pierwsze dodać odpowiedni checkbox na ostatnim oknie:
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Skonfiguruj i uruchom aplikację"/> <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1"/>
Stworzę również akcję odpowidzialną za uruchomienie aplikacji:
<CustomAction Id="Uruchom" Directory="INSTALLLOCATION" ExeCommand="[INSTALLLOCATION]WindowsFormsApplication1.exe" Return="asyncNoWait"/>
Ważne jest pole Return i wartość asyncNoWait, która oznacza że instalator nie musi czekać na wynik działania aplikacji i może kontynuować normalne działanie..
Na koniec podepnę zdarzenie do przycisku ?Zakończ? na ostanim oknie polegające na uruchomieniu akcji, ale tylko gdy zaznaczony jest checkbox:
<UI> <Publish Dialog="ExitDialog" Control="Finish" Order="2" Event="DoAction" Value="Uruchom"> WIXUI_EXITDIALOGOPTIONALCHECKBOX </Publish> </UI>
Wszystko jeszcze raz można zobaczyć na filmie
Hej, mam małe pytanie czy istnieje możliwość pozbycia się napisów w oknie licencji, chodzi mi dokładnie o napis w nagłówku “Umowa licencyjna użytkownika końcowego” czy trzeba to zrobić za pomocą własnych okien ? Z góry dzięki za pomoc.
jeśl modyfikujesz UI najlepiej jest stworzyć własny wygląd od nowa – źródła domyślnych dialogów są w src\ext\UIExtension\wixlib w źródłach od WiX, da Ci to praktycznie wolną rękę w dalszych modyfikacjach i będzie elastyczne.
Jeśli tylko chcesz podmienić tekst w jednym oknie możesz zastosować takiego haka:
1. stworzyć w projekcie własną lokalizację – plik .wxl
2. w pliku dodać lokalizację dla dowolnego elementu, w twoim wypadku coś takiego:
<String Id="LicenseAgreementDlgTitle" Overridable="yes">{\WixUI_Font_Title}Umowa licencyjna użytkownika końcowego </String>
Ok, dzięki za pomoc. Pozdrawiam