IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Inno setup - droits admin - lecture seule


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2
    Par défaut Inno setup - droits admin - lecture seule
    Bonjour/Bonsoir à toutes & à tous,

    J'ai développé un programme, en java, qui crée des fichiers .txt afin de mémoriser certaines données pour parer à l'utilisation d'une base de donnée (je sais utiliser le SQL mais uniquement dans des bases existantes...). Bref, mon programme fonctionnait parfaitement, j'ai donc utilisé launch4j pour créer un .exe & inno setup pour créer un installateur.
    Je prends donc mon setup que j'exécute sur un autre ordinateur, l'installation se fait correctement. Une fois que je désire lancer l'application, une erreur se produit (à cause des droits admin nécessaires à son utilisation). Or, mon objectif c'est qu'il soit exécutable sans souci, sur n'importe quel ordi & un utilisateur non-averti ne saura absolument pas comment régler ce souci.
    Je n'ai trouvé aucune option dans inno setup qui me permette de créer, après installation, un .exe avec la propriété "Exécuter ce programme en tant qu'Admin" & je n'ai aucune autre idée pour régler ce petit problème.

    Je vous remercie d'avance !

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 095
    Par défaut
    InnoSetup n'as pas a gérer cela je pense. Pour lancer la programme en mode admin, il suffit (sous windows) de faire clique droit sur l'exe et de mettre "lancer en administrateur"... mais en général, il n'y as pas besoin d'être admin pour faire tourner une application "normale". Sauf si celle ci a été installé en mode admin dans un endroit ou seul l'admin peut lire ou écrire...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2
    Par défaut
    Quoi qu'il en soit, il ne fonctionne absolument pas sans les droits d'écritures (puisque celui-ci crée & modifie des txt dans son dossier d'installation). Il est possible de le faire tourner sans les droits d'admin mais dans ce cas il faut aller décocher la lecture seule dans le dossier d'installation.... Et pour un véritable novice, c'est parler chinois... & comme dit plus haut, mon but est de rendre l'application accessible directement après son installation... Merci tout de même de ta réponse

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    A mon avis, tu dois écrire tes fichiers dans le dossier d'installation (donc, sous Windows, dans Program Files), ce qui est protégé pour éviter qu'un programme bidouille un autre programme. Il n'y a pas de droit particulier d'un programme pour écrire dans son propre dossier. Ecrit plutôt tes fichiers dans un dossier créé (qui porte le nom de ton programme) dans le dossier prévu pour ça (sur Windows, AppData/Local).

    Sur Windows, tu peux obtenir ce dossier par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File directory = new File(System.getenv("LOCALAPPDATA"));
    Ou, de manière plus générale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    public class LocalDataUtils {
     
       private final static String OS = System.getProperty("os.name").toLowerCase()
       public final static File LOCAL_DATA_DIRECTORY = new File( getLocalDataDirectoryName() );
     
       public static File getLocalDataDirectory(final String directoryName) {
          if ( isLinux() ) {
             return new File( LOCAL_DATA_DIRECTORY , "." + directoryName);
          } else {
             return new File( LOCAL_DATA_DIRECTORY , directoryName);
          }
       }
     
       private static String getLocalDataDirectoryName() {
          if ( isWindows() ) 
             return System.getenv("LOCALAPPDATA");
          else if ( isMacOSX() )
             return System.getProperty("user.home") + "/Library/Application Support";
          else if ( isLinux() ) 
             return System.getProperty("user.home");
          return System.getProperty("user.dir");
       }
     
       public static boolean isWindows() {
     
           return OS.contains("win";
     
       }
     
       public static boolean isMacOSX() {
     
          return OS.contains("mac");
     
       }
     
       public static boolean isLinux() {
     
          return OS.contains("nux");
     
       }
     
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File file = new File( LocalDataUtils.getLocalDataDirectory( nomdetonappli ), nomdetonfichier );
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. [SP-2010] Droit en lecture seule sous Sharepoint
    Par dune1 dans le forum SharePoint
    Réponses: 1
    Dernier message: 08/11/2011, 11h24
  2. Réponses: 2
    Dernier message: 19/05/2010, 22h59
  3. Pb droits admin + fichiers lecture seule
    Par Galevsky dans le forum Windows Vista
    Réponses: 4
    Dernier message: 18/04/2008, 20h28
  4. Réponses: 6
    Dernier message: 30/10/2007, 15h04
  5. Droit Utilisateur Acces Lecture Seule
    Par air_v dans le forum Administration
    Réponses: 9
    Dernier message: 15/11/2006, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo