Comment ajouter des informations manifestes dans le projet delphi

Quelle est la meilleure façon d'ajouter de la <requestedPrivileges> manifestez l'information à un projet Delphi XE (.exe)?

Est-il possible d'ajouter le nœud requis de la forme:

<requestedPrivileges>   
  <requestedExecutionLevel level="requireAdministrator"/> 
</requestedPrivileges>

ou dois-je ajouter que tout fichier de manifeste, comme?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="VistaLogonCustomizer.exe" type="*"/>
  <description>elevate execution level</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
   <security>
     <requestedPrivileges>
      <requestedExecutionLevel level="requireAdministrator"/>
     </requestedPrivileges>
   </security>
  </trustInfo>
  <dependency>
   <dependentAssembly>
     <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
   </dependentAssembly>
  </dependency>
</assembly> 

si je dois ajouter tout le fichier manifest, est-ce que j'ai alors un conflit avec le fichier build in manfest (qui est généré lorsque l'option project-"Activate Runtime-Theme" est définie à true)?

17
demandé sur Jens Mühlenhoff 2011-06-03 16:17:13

3 réponses

Est-il possible d'ajouter le nœud requis

absolument pas. Le manifeste est un document XML et les documents XML doivent être bien formés. Voici la description du schéma XML:

http://msdn.microsoft.com/en-us/library/aa374191(SV.85).aspx

notez les éléments et attributs requis.

7
répondu Premature Optimization 2011-06-03 15:08:32

Voici quelques liens

Delphi et Windows Vista Contrôle de Compte d'Utilisateur

manifeste UAC de Vista

Voici les étapes:

Create XML file with following content: 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.1.1.1"
   processorArchitecture="X86"
   name="YourApplicationExeName"
   type="win32"/>
  <description>elevate execution level</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
  <security>
   <requestedPrivileges>
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
   </requestedPrivileges>
  </security>
  </trustInfo>
 </assembly>

nommez ce fichier XML comme YourApplicationName.manifeste

Créer un fichier texte avec la suite contenu:

1 24 "YourApplicationName.manifest"

nommez ce fichier texte comme YourApplicationName.RC en utilisant le ligne de commande exécuter la commande suivante:

brcc32 Yourrapplicationname.RC-foYourApplicationName.REC

ceci créera un nouveau fichier de ressources appelé YourApplicationName.REC Copy cette Nom_application.REC fichier dans le chemin d'accès aux ressources de votre application. Incluez ce fichier de ressources dans le RMR de votre application,

comme:

{$R Nom_application.REC} Enfin construire votre application - il est maintenant prêt à obtenir admin des droits de l'

15
répondu Orhan Cinar 2014-12-02 09:08:55

vous devriez ajouter le manifeste entier. Vous devrez désactiver la version générée par IDE dans le projet.

L'avantage, c'est que vous aurez complète et transparente de contrôle de votre manifeste. Par exemple, vous voudrez peut-être ajouter une entrée de type DPI aware pour que votre application semble bonne à des valeurs de mise à l'échelle de police plus élevées.

12
répondu David Heffernan 2011-06-03 15:05:33