News 
Products 
Articles 
Other 

Wykorzystanie plików .manifest do uzyskania wyglądu XP aplikacji

.manifest wygląd XP dla programu interfejs
W chwili obecnej na każdej (dobrej) stronie poświęconej programowaniu znajduje się opis pokazujący, jak przy pomocy plików .xml i funkcji InitCommonControls() sprawić, aby nasz program nabrał wyglądu a'la Windows XP. Chciałem jednak przedstawić inny ciekawy sposób.

Aby nasza aplikacja w systemach wyposażonych w Lunę (czyli interfejs "XP") wyglądała "ładnie", wcale nie musimy męczyć się z plikiem .exe podczas kompilacji. Wystarczy że w katalogu macierzystym programu utworzymy plik: nazwa_programu.exe.manifest (oczywiście zamiast nazwa_programu musimy wstawić nazwę naszego pliku .exe). Do tak przygotowanego pliku wklejamy następującą zawartość:



<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="2.0.0.0"
processorArchitecture="X86"
name="Nazwa programu, dowolna "
type="win32"
/>
<description>Opis programu</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>





Oczywiście to rozwiązanie ma plusy i minusy:

Plusy:
  • szybkość wykonania pliku .manifest (przez nas)

  • mniejszy plik wykonywalny aplikacji (nie kompilujemy razem z nim pliku .xml)

  • program UPX (kompresor plików.exe) niekiedy nie radził sobie zbyt dobrze z plikami, które zawierały w treści plik .xml ponieważ kompresował go, a wtedy występował błąd (wynikała konieczność ustawienia braku kompresji dla zasobów, co zwiększało rozmiar pliku wykonywalnego)

Minusy:
  • aplikacje trzeba rozprowadzać razem z plikiem .manifest (może to przeszkadzać gdy program mieści się np. w jednymi pliku .exe)

  • gdy użytkownik (nie programista) zmieni przez przypadek nazwę pliku .exe, plik .manifest przestanie działać


  • Powyższe minusy jednak nie mają zastosowania, jeżeli plik .manifest będziemy tworzyli dynamicznie w aplikacji.



.manifest wygląd XP dla programu interfejs
Create date: Oct 6, 2003 | Last modification: Oct 6, 2003 Users' comments [0]

Lubię czytać