Embutindo o manifesto na aplicação com Delphi
No artigo Como adquirir privilégio de administrador com UAC? eu falei sobre como funciona o processo de requisição de elevação através do manifesto e comentei alguns dos parâmetros, seus possíveis valores e as consequências, agora vou mostrar como embutir o manifesto em um programa feito com Delphi.
Crie um arquivo XML chamado "UAC.manifest" com o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3"> <v3:security> <v3:requestedPrivileges> <v3:requestedExecutionLevel level="highestAvailable" /> </v3:requestedPrivileges> </v3:security> </v3:trustInfo> </assembly>
Antes do manifesto ser embutido no executado ele precisa ser compilado em um arquivo no formato RES, para tal, crie um arquivo chamado UAC.RC com o conteúdo:
1 24 "UAC.manifest"
Onde:
- 1 é o índice do recurso
- 24 é o tipo do recurso RT_MANIFEST
- "UAC.manifest" é o arquivo XML contendo o manifesto
Compile o arquivo UAC.rc com compilador de recursos instalado junto com o Delphi:
brcc32 UAC.rc
E finalmente, adicione ao seu projeto. No início do arquivo de projeto .DPR com a diretiva de compilação $R adicione:
{$R UAC.res}
Referências
- Como adquirir privilégio de administrador com UAC?
- Leveraging Vista’s UAC with Delphi: Parte 2 e Parte 3
- Windows XP Manifest in Delphi

0 Comments
You can be the first one to leave a comment.