Come richiedere i permessi admin in un applicazione Delphi

Per chi è abituato a programmare in Delphi su sistemi Windows XP o precedenti si sarà sicuramente trovato in difficoltà al passaggio da XP a Windows Vista o Seven, infatti a differenza di XP, le versioni successive di Windows hanno introdotto UAC, quindi per eseguire alcune funzioni è necessario avere l’autorizazione dell’utente o bisogna farsi avviare da utente Admin, per questo se ad esempio si prova a creare una directory sotto la directory di Windows oppure se si tenta di andare a mettere un programma in esecuzione automatica, il sistema si arrabierà e verrà sollevata un eccezione di acceso non autorizato, purtroppo l’unico modo che abbiamo per poter far eseguire alcune funzioni è modificare il manifest dell’applicazione per far si che windows sappia che si tratta di un applicazione che richiede permessi admin, e quindi mostrerà all’utente la richiesta dei permessi (il 98% degli utenti tanto dirà di si…).

Ecco i pochi e semplici passi da seguire…

  1. creiamo un file XML con il seguente contenuto:
    <?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>
  2. rinominiamolo in YourApplicationName.manifest
  3. creiamo un altro file di testo e copiamoci questo:
    1 24 “YourApplicationName.manifest”
  4. ora rinominiamolo in YourApplicationName.RC
  5. ora apriamo il cmd e da linea di comando, spostiamoci nella posizione dove sono i 2 file appena creati e digitiamo:
    brcc32 YourApplicationName.RC -foYourApplicationName.REC
  6. Questo crea un nuovo file di risorse dal nome YourApplicationName.REC
  7. copiamo YourApplicationName.REC nella directory del programma (dove abbiamo il sorgente) o dove si trova il path di inclusione delle risorse
  8. ora includiamo all’interno dell’applicazione il file di risorse digitando {$R YourApplicationName.REC}

Ovviamente al posto di YourApplicationName va messo il nome della vostra applicazione.

Questo è tutto, ora quando avvierete il programma UAC chiederà l’autorizazione speciale cosi che il programma potrà fare tutto quello che vuole… In alternativa potete sempre convincere l’utente a disattivare UAC :D

Bookmark and Share

Tags: ,

Leave a Reply

  • Iscriviti al feed RSS