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

 
 
 

0 Comments

 

You can be the first one to leave a comment.

 

Leave a Comment

 

You must be logged in to post a comment.