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…
- creiamo un file XML con il seguente contenuto:
elevate execution level - rinominiamolo in YourApplicationName.manifest
- creiamo un altro file di testo e copiamoci questo:
1 24 “YourApplicationName.manifest” - ora rinominiamolo in YourApplicationName.RC
- 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 - Questo crea un nuovo file di risorse dal nome YourApplicationName.REC
- copiamo YourApplicationName.REC nella directory del programma (dove abbiamo il sorgente) o dove si trova il path di inclusione delle risorse
- 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 😀