2013-05-06 17 views
5

Mój program powinien działać jako administrator. Dwa lata temu tworzę plik manifestu i działa dobrze. Ale teraz przenoszę się z Delphi 2010 do Delphi XE3 i nie działa - program startuje jak zwykle (nie jako administrator). Dalej nazywam mój program jako "MyApp".Nie przechwytuj pliku manifestu

W źródle, oświadczam dwa pliki: RES-

{$R MyApp.res} 
{$R Manifest.res} 

Oczywisty było stworzenie przez ten kod:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <assemblyIdentity 
    type="win32" 
    name="MyApp" 
    version="1.1.0.0" 
    processorArchitecture="x86"/> 
    <description> 
    MyApp 
    </description> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity 
     type="win32" 
     name="Microsoft.Windows.Common-Controls" 
     version="6.0.0.0" 
     publicKeyToken="*deleted*" 
     language="*" 
     processorArchitecture="x86"/> 
    </dependentAssembly> 
    </dependency> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel 
      level="requireAdministrator" 
      uiAccess="false"/> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
</assembly> 

Kiedy usunąć {$ R MyApp.res} od źródła oczywistego pracy. Rozumiem, że MyApp.res (automatycznie generowane przez Delphi) pokonał Manifest.res. Ale w Delphi 2010 ta konfiguracja działa idealnie, ale nie działa w XE3. Czemu? Jak mogę to naprawić?

Odpowiedz

9

Jeśli chcesz użyć niestandardowego pliku .res dla swojego manifestu, musisz wyłączyć domyślny manifest Delphi, ponieważ proces może mieć tylko 1 manifest. Przejdź do opcji projektu, w sekcji "Aplikacja" i ustaw opcję "Kompozycje Runtime" na "brak".

Można również przenieść manifest do pliku manifestu, a następnie ustawić opcję "Kompozycje czasu wykonywania", aby "używać niestandardowego manifestu". Następnie usuń niestandardowy plik .res ze swojego kodu.

Powiązane problemy