Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130

    [VB.Net] eseguire come amministratore

    Salve, ho creato il mio software che posso installare sul pc, grazie al pacchetto di installazione creato con Innosetup.

    Ora però sorge un problema, il software installato funziona, però ogni volta che deve andare a modificare un file , esce l'errore Accesso al percorso negato.

    Il problema l'ho già individuato, in pratica il programma deve essere eseguito come amministratore, altrimenti windows non gli permette di modificare nessun file.

    Se infatti eseguo il programma come amministratore, tutto funziona alla perfezione.

    Quindi ho necessità di eseguire in automatico il programma come amministratore, non so se si può aggiungere qualche opzione in fase di programmazione, che permette di eseguire il programma direttamente come amministratore.

    Chiedo pertanto aiuto, a qualcuno che ne sa più di me.
    Grazie.

  2. #2
    None, tu non hai bisogno di eseguire il programma come amministratore, ma devi evitare di scrivere in percorsi a cui un utente limitato non ha accesso in scrittura (in particolare, lasciare stare la cartella programmi). L'argomento è stato già trattato molte volte, leggi ad esempio:
    http://forum.html.it/forum/showthrea...readid=1517801
    http://forum.html.it/forum/showthrea...readid=1513131
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Nel [Setup] di Innosetup aggiungi:

    Privilegesrequired=admin

  4. #4
    Originariamente inviato da eziogsv
    Nel [Setup] di Innosetup aggiungi:

    Privilegesrequired=admin
    È impostato di default, e se vedi dice che il problema non è in fase di installazione (che si completa correttamente), ma di esecuzione (ovvero, il suo programma cerca di fare cose che richiedono i privilegi di amministratore).
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Ho letto, ma non capisco il tuo appunto. Se il suo Installer di InnoSetup FORZASSE VERAMENTE il programma ad essere installato con privilegi di amministratore... SE a quel punto lui si settasse come Amministratore quando POI andasse ad eseguire operazioni che richiedono privilegi di amministratore... le operazioni verrebbero eseguite. O NO?

    Comunque in sede di lancio del programma potrebbe inserire un:

    codice:
    If Not My.User.IsInRole(ApplicationServices.BuiltInRole.Administrator) Then            
          MessageBox.Show(".............................")
          Me.Close()
          Exit Sub
    End If

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    Originariamente inviato da MItaly
    None, tu non hai bisogno di eseguire il programma come amministratore, ma devi evitare di scrivere in percorsi a cui un utente limitato non ha accesso in scrittura (in particolare, lasciare stare la cartella programmi). L'argomento è stato già trattato molte volte, leggi ad esempio:
    http://forum.html.it/forum/showthrea...readid=1517801
    http://forum.html.it/forum/showthrea...readid=1513131

    è quello che ho fatto, ma quali sono le cartelle dove un utente limitato può scrivere?
    Ne ho provate un bel pò di cartelle, ma a tutte ottengo lo stesso risultato, ovviamente in fase di installazione creo la mia sottodirectory chiamata Edb dove dentro inserisco il file.

    Ho pure preso il mio file, e abilitato la lettura scrittura a tutti gli utenti, ma poi quando durante l'installazione questo file viene scritto nel suo percorso, nel mio caso in C:\ProgramData\Edb torna ad essere un file limitato al solo admin.

    Quindi o avvio il programma come amministratore, oppure non posso modificare il file.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    Originariamente inviato da MItaly
    È impostato di default, e se vedi dice che il problema non è in fase di installazione (che si completa correttamente), ma di esecuzione (ovvero, il suo programma cerca di fare cose che richiedono i privilegi di amministratore).
    Non sò se sia già impostato di default o meno, comunque pure inserendo quella riga non cambia assolutamente nulla.
    Avevo già letto in rete di questa cosa, e ho pure letto che questo sistema, alcune volte funziona e altre volte no.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    Originariamente inviato da eziogsv
    Ho letto, ma non capisco il tuo appunto. Se il suo Installer di InnoSetup FORZASSE VERAMENTE il programma ad essere installato con privilegi di amministratore... SE a quel punto lui si settasse come Amministratore quando POI andasse ad eseguire operazioni che richiedono privilegi di amministratore... le operazioni verrebbero eseguite. O NO?

    Comunque in sede di lancio del programma potrebbe inserire un:

    codice:
    If Not My.User.IsInRole(ApplicationServices.BuiltInRole.Administrator) Then            
          MessageBox.Show(".............................")
          Me.Close()
          Exit Sub
    End If
    Bene questa è già una prima soluzione, ma preferirei trovare la possibilità di eseguire il software come amministratore.

  9. #9
    Originariamente inviato da jasson
    Bene questa è già una prima soluzione, ma preferirei trovare la possibilità di eseguire il software come amministratore.
    Non credo che Windows consenta a priori di lanciare un programma come amministratore "da codice", altrimenti gli hacker avrebbero strade spianate. Poi, posso sbagliare.

    A questo punto tre domande:

    1) Di che sistema operativo stiamo parlando?
    2) Il codice che ho riportato ti vede come amministratore si o no?
    2) Quando vai ad editare il tuo account tramite Pannello di Controllo... sei o non sei settato come amministratore?

    .

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    Originariamente inviato da eziogsv
    Non credo che Windows consenta a priori di lanciare un programma come amministratore "da codice", altrimenti gli hacker avrebbero strade spianate. Poi, posso sbagliare.

    A questo punto tre domande:

    1) Di che sistema operativo stiamo parlando?
    2) Il codice che ho riportato ti vede come amministratore si o no?
    2) Quando vai ad editare il tuo account... sei o non sei settato come amministratore?

    .
    Allora stiamo parlando di Windows7

    Il codice che hai riportato funziona, ho fatto una prova, un debug con Visaul basic.
    Se lancio Visual basic normalmente, e provo il codice mi esce il msgBox, se lancio VisulBasic come amministratore, il messaggio non compare, perchè il codice mi individua come amministratore.

    Quando entro nel mio account, non sono settato come amministratore, normalmente nessun utente che utilizza Windows7 è settato come amministratore.
    Windows7 in fase di installazione crea subito un account utente, e nasconde automaticamente l'account admin.
    Praticamente tutti degli utenti che utilizzano window7, non accedono come amministratori, perchè l'account admin non è accessibile.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.