Newsgroup: it.comp.lang.delphi
Titolo: eseguibile su Seven con permessi admin

Salve a tutti,
sto cercando un metodo per far sì che un eseguibile compilato con Delphi 
2007 sotto Win XP, quando fatto girare su Seven attivi
automaticamente lo UAC per la richiesta di esecuzione con privilegi
da amministratore. L'eseguibile è stand alone e non vorrei doverlo
chiudere in un setup, inoltre non voglio che l'utente si assuma l'onere 
di eseguirlo con i permessi giusti. Ho trovato qualcosa a riguardo
della modifica del manifest ma non funziona. Help !
-- 
Il silenzio ti fa vedere ciò che il rumore non ti fa cogliere ..


Avevo lo stesso problema (un incubo per la verità) ed ho risolto cosi':
1)
crei un file con lo stesso nome del tuo progetto ma con estensione 
.manifest con dentro una cosa tipo:
<?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="{{FileName.exe}}"
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>
dove al posto di {{FileName.exe}} metti il nome del tuo eseguibile
2)
ora crei un file .rc (sempre con lo stesso nome del tuo progetto) con 
scritto:
1 24 "<nome file manifest>"
dove al posto di <nome file manifest> metti il nome del file .manifest 
(compresa estensione)
3)
Compili il file di risorse con il comando:
brcc32 <nome file .rc> -fo<nome file finale>
dove al posto di <nome file .rc> metti il nome+estensione del file 
creato al punto 2 ed al posto di <nome file finale> metti un nome di 
file uguale al nome del tuo progetto ma con estensione .rec
4)
Apri il tuo dpr ed includi la risorsa appena creata con {$R <nome risorsa>}
5)
Esegui il build del progetto
Facciamo un esempio.....
Ho un progetto che si chiama Project1.dpr (cavolo che fantasia pero')
1) File Project1.manifest
<?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="Project1.exe"
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) File Project1.rc
1 24 "Project1.manifest"
3) Compilazione
brcc32 Project1.rc -foProject1.rec
4) Aggiunta risorsa al file Project1.dpr
{$R Project1.rec}
5)
Eseguo il build di Project1.dpr
Ciao,
David
Nota: ti conviene crearti un programmino che fa tutto in automatico è 
piu semplice

 Avevo lo stesso problema (un incubo per la verità) ed ho risolto cosi':
 
<cuttone>
 
Questo dovrebbe essere aggiunto alle FAQ, se ci sono ancora. Veramente  
utile e spiegato BENISSIMO !
 
-- 
=============================================================
Alberto Rubinelli - Fondazione "Museo del computer"
Via Costantino Perazzi 22 - 28100 NOVARA - ITALY
Tel 0321 1856032   Fax 0321 391769   BBS 0321 392320
Mail: 
alb...@oldcomputers.de
 
Sito internet : 
http://www.museodelcomputer.org
 
=============================================================

Maaa grrraazzieee ! Ora provo subito e nel caso il programmino lo faccio io.
Saluti.
