Discussione chiusa
Visualizzazione dei risultati da 1 a 5 su 5

Discussione: InnoSetup desktopicon con privilegi d'amministratore

  1. #1
    fabel non è in linea Scolaretto
    Luogo
    Sassuolo
    Post
    57

    InnoSetup desktopicon con privilegi d'amministratore

    Salute a tutti.
    Ho cercato sul forum senza trovare risposta alla seguente domanda:
    è possibile fare in modo che innosetup, durante l'installazione, crei sul desktop un collegamento per l'avviamento del programma che, in windows Vista e/o 7, abbia già i privilegi di amministratore? Questo per non predisporre la cosa a mano in seguito ed anche per evitare che si attivi il programma con privilegi limitati dimenticandosi di cliccare sull'icona del collegamento col tasto destro del mouse per scegliere "Esegui con privilegi di amministratore" nel menù a tendina.
    Qualcuno potrebbe chiarirmi questo aspetto?
    Grazie anticipate a chi vorrà rispondermi.

  2. #2
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,087
    Non è un problema di icona o collegamento, ma di impostazione del Registro.

    Puoi provare ad istruire InnoSetup ad impostare la seguente chiave del registro:

    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

    in cui dovrai aggiungere la riga della tua applicazione e la relativa impostazione, ad esempio:

    Nome
    percorso completo tua applicazione.exe, es.: C:\Program Files (x86)\mySoftware\MyApp.exe

    Tipo
    REG_SZ

    Dati
    WINXPSP3 RUNASADMIN

    In cui:
    - WINXPSP3 indica di usare la compatibilità di Windows XP Service Pack 3
    - RUNASADMIN indica di avviare l'applicazione come amministratore

    Ovviamente, se l'utente NON ha i diritti di amministratore, nisba!


  3. #3
    fabel non è in linea Scolaretto
    Luogo
    Sassuolo
    Post
    57
    Grazie per la risposta Gibra. Nel frattempo ho trovato che l'effetto si può ottenere aggiungendo al file "manifest" (o alle risorse) le seguenti linee di codice:

    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
    <requestedPrivileges>
    <requestedExecutionLevel
    level="requireAdministrator"
    uiAccess="False"/>
    </requestedPrivileges>
    </security>
    </trustInfo>


    L'effetto è quello di far apparire la iconcina dei privilegi di amministratore sull'icona del collegamento.

  4. #4
    Lupo76 non è in linea Novello
    Post
    9
    Quote Originariamente inviato da fabel Visualizza il messaggio
    Grazie per la risposta Gibra. Nel frattempo ho trovato che l'effetto si può ottenere aggiungendo al file "manifest" (o alle risorse) le seguenti linee di codice:

    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
    <requestedPrivileges>
    <requestedExecutionLevel
    level="requireAdministrator"
    uiAccess="False"/>
    </requestedPrivileges>
    </security>
    </trustInfo>


    L'effetto è quello di far apparire la iconcina dei privilegi di amministratore sull'icona del collegamento.

    Ciao Fabel,
    ho visto ora che hai lo stesso mio problema e lo hai risolto!
    Uso anch'io InnoSetup ed ho realizzato un file eseguibile che deve essere avviato con i diritti di amministratore da qualsiasi utente Windows (anche limitato).

    Purtroppo non sono un esperto di VB.NET, mi diletto solo a giocarci un po'...


    Ho aggiunto le righe di codice al file NomeApplicazione.exe.Manifest (sostituendo già quelle presenti...), quindi ora il mio file è:
    <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>

    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
    <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    <requestedExecutionLevel level="requireAdministrator" uiAccess="False"/>
    </requestedPrivileges>
    </security>
    </trustInfo>

    </asmv1:assembly>


    Ed ho copiato il file .manifest nella stessa cartella dove è presente il file EXE.
    Purtroppo non funziona :-(

    Inoltre cosa intendi per "o alle risorse"? e possibile fare a meno del file .manifest? Come esattamente?

    Grazie in anticipo

  5. #5
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,313
    Blogs
    5
    Qui non si riprendono discussioni vecchie di anni.

    Apri un nuovo thread, con titolo opportuno, spiegando la tua situazione ed eventualmente facendo riferimento con un link alla vecchia discussione.

    Non è detto che gli utenti che hanno scritto anni fa siano ancora attivi e molte volte non ha senso riferirsi direttamente a loro.

    Thread chiuso.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

Discussione chiusa

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi