Modyfikacja manifestu - Builder 2009/2010

dział ogólny

Modyfikacja manifestu - Builder 2009/2010

Nowy postprzez mckri » piątek, 1 czerwca 2012, 07:29

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.
Avatar użytkownika
mckri
Intelektryk
Intelektryk
 
Posty: 160
Dołączył(a): piątek, 15 sierpnia 2008, 13:48
Podziękował : 10
Otrzymał podziękowań: 2
System operacyjny: Windows Vista SP2
Kompilator: BCB 5/2007/2009
    Windows 7Opera

Re: Modyfikacja manifestu - Builder 2009/2010

Nowy postprzez Cyfrowy Baron » piątek, 1 czerwca 2012, 08:55

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...
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4712
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Modyfikacja manifestu - Builder 2009/2010

Nowy postprzez mckri » piątek, 1 czerwca 2012, 19:31

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?
Avatar użytkownika
mckri
Intelektryk
Intelektryk
 
Posty: 160
Dołączył(a): piątek, 15 sierpnia 2008, 13:48
Podziękował : 10
Otrzymał podziękowań: 2
System operacyjny: Windows Vista SP2
Kompilator: BCB 5/2007/2009
    Windows 7Internet Explorer 9

Re: Modyfikacja manifestu - Builder 2009/2010

Nowy postprzez mckri » piątek, 1 czerwca 2012, 19:43

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.
Avatar użytkownika
mckri
Intelektryk
Intelektryk
 
Posty: 160
Dołączył(a): piątek, 15 sierpnia 2008, 13:48
Podziękował : 10
Otrzymał podziękowań: 2
System operacyjny: Windows Vista SP2
Kompilator: BCB 5/2007/2009
    Windows 7Internet Explorer 9


Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości

cron