Strona 1 z 1

Modyfikacja manifestu - Builder 2009/2010

Nowy postNapisane: piątek, 1 czerwca 2012, 07:29
przez mckri
Witam.
Wiecie pewnie, że żeby osiągnąć styl komponentów z XP/Vista/7 trzeba zaznaczyć w opcjach projektu w zakładce Application checkbox 'Enable runtime themes'. Wówczas po skompilowaniu programu dodaje się ten manifest do pliku exe. Czy wie ktoś, jak można zmodyfikować zawartość tego manifestu, aby po takiej modyfikacji dopiero został skompilowany i dodany do pliku exe? Chodzi mi głównie o modyfikację parametrów: name, version, level oraz uiAccess.

Re: Modyfikacja manifestu - Builder 2009/2010

Nowy postNapisane: piątek, 1 czerwca 2012, 08:55
przez Cyfrowy Baron
Możesz nie zaznaczać tej opcji Enable runtime themes lecz stworzyć własny manifest i włączyć go w zasoby programu. Na etapie programowania kontrolki będą wyglądały jak w Win98, ale w skompilowanym programie będą już miały wygląd typowy dla systemu.

Wygląd kontrolek w Windows XP. Jak umieścić manifest w zasobach programu.

Manifest podany w tej poradzie jest trochę przestarzały. Podaję więc kod nowego manifestu:

KOD text:     UKRYJ  
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>
 


W środowisku Embarcadero RAD Studio XE2 jest o tyle łatwiej, że zamiast opcji 'Enable runtime themes można sobie wybrać Use custom manifest i wskazać lokalizację własnego manifestu.

mckri napisał(a):Chodzi mi głównie o modyfikację parametrów: name, version, level oraz uiAccess.


level:
  • asInvoker - aplikacja uruchamia się z takimi samymi uprawnieniami jak proces macierzysty, czyli ten który ją uruchomił
  • highestAvailable - aplikacja uruchamia się z najwyższymi uprawnieniami jakie aktualnie użytkownik może uzyskać.
  • requireAdministrator - aplikacja działa tylko z uprawnieniami administratora i wymaga, aby została uruchomiona z tokenu pełnego dostępu z uprawnieniami administratora.

uiAccess: tego tak dokładnie to nie wiem. Może ktoś opisze...

Re: Modyfikacja manifestu - Builder 2009/2010

Nowy postNapisane: piątek, 1 czerwca 2012, 19:31
przez mckri
Dzięki, oczywiście znam tą poradę. Sęk w tym, że np. w środowisku Builder 2009 nie działa poprawnie. Podczas kompilacji pojawia się ostrzeżenie:

[ILINK32 Warning] Warning: Duplicate resource: Type 14 (ICON GROUP), ID MAINICON; File C:\USERS\username\DOCUMENTS\RAD STUDIO\PROJECTS\jakistamprojekt\DEBUG\PROJECT2.RES resource kept; file C:\USERS\username\DOCUMENTS\RAD STUDIO\PROJECTS\jakistamproject\VFSB646.TMP resource discarded.

Nie dodawałem żadnych innych zasobów, tylko ten z manifestem.
Dziala poprawnie w srodowisku Builder 2010. Pech chce, że akurat potrzebuje to miec w Builder 2009. Jakaś podpowiedź, co można zmienić żeby mogło to działać w Builder 2009?

Re: Modyfikacja manifestu - Builder 2009/2010

Nowy postNapisane: piątek, 1 czerwca 2012, 19:43
przez mckri
Problem już rozwiązany. Środowisko builder 2009 było wrażliwe na to, że plik 'rc' miał pierwszy człon nazwy taki sam jak nazwa programu.