Newsgroup: it.comp.lang.visual-basic
Titolo: vb6 Richiesta elevare privilegi utente all'avvio dell'applicazione

Ciao a tutti, ho un semplice eseguibile, che su windows 7/vista richiede di
elevare i privilegi, e riporta lo "scudo" nell'icona.
Tutti gli altri eseguibili che ho non hanno questo problema, mi domandavo
se c'era qualcosa per il quale vista si sente di mettere questo scudo,
rispetto agli altri eseguibili.
Ho provato a mettere un manifest in app.path con:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86"
name="isVista" type="win32"/>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
         <security>
               <requestedPrivileges>
                   <requestedExecutionLevel
                       level="requireAdministrator"/>
               </requestedPrivileges>
         </security>
      </trustInfo>
  </assembly>
Ma non cambia nulla.
La mia necessit� � che il programma possa essere lanciato da admin o utenti
limitati senza alcun popup.
E' qualcosa che posso settare via InnoSetup eventualmente?

                       level="requireAdministrator"/>
Con questo indichi a windows che il tuo programma *necessita* appunto del 
livello administrator, per cui apparir� l'elevation prompt a maggior 
ragione.
Prova con level="asInvoker" oppure a non mettere proprio il manifest.
Bye
Raf 

 
http://msdn2.microsoft.com/en-us/library/aa905330.aspx
Maremma che sfiga :)
Si chiama *Update.exe, diciamo che non � neanche modificabile essendo il
programma lanciato da collegamento sul desktop, dovrei rimandare un setup.
Il programma non fa altro che copiare i file da una cartella di
aggiornamenti in un'altra. Se lo chiamo pippo.exe parte senza problemi, se
cambio il manifest come detto (e lascio il nome *update.exe), comunque mi
dice che vuole i privilegi.
Mi rileggo bene il link e vedo se c'� qualcosa da impostare.
Grazie.

 Sarebbe interessante sapere quali sono.
Sui nomi di file viene effettuato un filtraggio per rilevare determinate
caratteristiche, per riconoscere i programmi di Setup che hanno
bisogno di un'elevazione di privilegi per partire.
Il sistema � euristico, e si chiama "installer detection".
Oltre a determinate stringhe nel nome di un eseguibile ("install",
"setup", "update" e simili) vengono rilevate anche delle caratteristiche
aggiuntive, per esempio la firma digitale, file manifest incorporato,
se ricordo bene, e altro nei campi versione degli eseguibili.
C'� un documento sul sito MS che AFAIR si dovrebbe chiamare
circa "Windows Vista UAC developer requirements", dov'� spiegato
quasi tutto.
*************
Verso la met� della pagina che ti ha segnalato Rafunk c'� questo,
che dovrebbe essere ci� che ti interessa:
"*Important*  When developing new installation programs, much like
developing programs for Windows Vista, be sure to embed an
application manifest with an appropriate *requestedExecutionLevel*
element (see Step 6: Create and Embed an Application Manifest
in downloadable _Help file_). When the  *requestedExecutionLevel*
is present in the embedded application manifest, it overrides
Installer Detection."
Bye, G. 

 Installer Detection."
Infatti avrei provato AsInvoker ma mi da un msgbox che mi dice che ci
vogliono i privilegi elevati, se il file lo chiamo pippo.exe va comunque.

 vogliono i privilegi elevati, se il file lo chiamo pippo.exe va comunque.
Risolto, forse avevo scritto male il manifest (non avevo messo il nome
giusto in name="") .
In pratica basta il manifest in app.path anche sul vecchio eseguibile.
Inserire il manifest nel progetto non ha comportato differenze, ci vuol
sempre quello esterno:
| <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
| <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
| <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="NOME_UPDATE" type="win32"/>
| <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|  <security>
|                <requestedPrivileges>
|                    <requestedExecutionLevel
|                        level="asInvoker"/>
|                </requestedPrivileges>
|          </security>
|       </trustInfo>
|   </assembly>