2011-06-03 21 views
17

¿Cuál es la forma más fácil de agregar la información del manifiesto <requestedPrivileges> a un proyecto Delphi XE (.exe)?Cómo agregar la información manifest <requestedPrivileges> al proyecto delphi

¿Es posible añadir simplemente el nodo requerido como:

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

o tengo que añadir todo el archivo de manifiesto, como?

<?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 tengo que añadir todo el archivo de manifiesto, tengo entonces un conflicto con la estructura en el archivo manfest (que se genera cuando el proyecto-opción "Activar Runtime-Tema" se establece en true)?

+2

Tiene que agregar el manifiesto completo y debe deshabilitar "Activar tiempo de ejecución-Tema". Puede compilarlo utilizando el compilador de recursos o incluir un archivo .manifest separado. –

Respuesta

15

Éstos son algunos enlaces

Delphi and Windows Vista User Account Control

Vista UAC Manifest

Estos son los pasos:

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> 

Nombre este archivo XML como Y ourApplicationName.manifest

Crear un archivo de texto con el siguiente contenido :

1 24 "YourApplicationName.manifest" 

Nombre este archivo de texto como YourApplicationName.RC utilizando la línea de comando de ejecución siguiente comando:

brcc32 YourApplicationName .RC -foYourApplicationName.REC

Esto creará comió un nuevo archivo de recursos llamado YourApplicationName.REC Copie este archivo YourApplicationName.REC en la ruta del recurso de su aplicación . Integrar este recurso en la República Popular Democrática de aplicación que,

como como:

{R $ YourApplicationName.REC} Por último generar la aplicación - que ahora está listo para obtener derechos de administrador

+2

Me siento denso hoy. ¿Podría explicarnos cómo esos enlaces responden la pregunta? Resuma aquí su contenido o señale qué partes de esos artículos son más importantes para la tarea inmediata. –

+8

No es necesario (ni debe hacerlo ningún entorno de desarrollo) soltar un símbolo del sistema o ejecutar un comando por separado. Simplemente agregue su script de recursos al proyecto (** Proyecto ** -> ** Agregar al proyecto ** -> 'wumpa.rc' -> ** Abrir **). Delphi ahora compilará el script de recursos. También tenga en cuenta que el archivo de script de recursos se puede llamar como lo desee. Siempre lo llamamos 'wumpa.rc', como en * Hunt the wumpa * - una referencia a la cantidad de trabajo para descubrir que Delphi (a diferencia de Visual Studio) puede compilar scripts de recursos. –

+0

¿Es un requisito que el archivo de manifiesto se llame .manifiesto o que .manifiesto también funcione? – dummzeuch

12

Debe agregar el manifiesto completo. Deberá deshabilitar la versión generada por IDE en el proyecto.

La ventaja de esto es que tendrá un control total y transparente de su manifiesto. Por ejemplo, es posible que desee agregar una entrada consciente de DPI para que su aplicación se vea bien en valores de escala de fuente más altos.

Cuestiones relacionadas