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

Langage Java Discussion :

Récupérer le chemin du répertoire Démarrage


Sujet :

Langage Java

  1. #1
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut Récupérer le chemin du répertoire Démarrage
    Bonjour,
    J'ai un problème sans doute relativement simple a résoudre, mais je n'y arrive pas
    Je souhaite créer en java une petite application qui va copier d'autres applications dans le répertoire Démarrage du menu démarrer de Windows.

    Rien de compliqué à priori, seulement ces applications doivent être utilisable sur n'importe quelle version de Windows (ça veut dire dans n'importe quelle langue), donc impossible de mettre le chemin en dur car d'un poste à l'autre le chemin peut changer (version française, anglaise, etc...).

    Bref, je souhaite donc récupérer en utilisant une variable Windows ou peut-être même une valeur de registre le chemin exacte conduisant à ce fameux répertoire Démarrage, mais je ne sais pas comment faire.

    Quelqu'un aurait-il une idée svp?

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Faut lire la base des registres, la base des registres n'est pas facilement accessible en java, y a des apis (je sais plus lesquelles) qui permettent d'y accéder. Ensuite faudra lire dans la base de registre quel est le répertoire démarrer de windows. Note que non seulement çà change en fonciton de la langue, mais çà peux aussi changer en fonction des choix de l'utilisateur

  3. #3
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    Merci,
    C'est aussi ce que je pensai, passer par le registre.
    J'ai trouvé une solution qui fonctionne (enfin ça à l'air) sans utiliser d'API spécifique.

    Voilà le bout de code:
    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
     
        private static final String REGQUERY_UTIL = "reg query ";
     
        private static final String STARTUP_FOLDER_CMD = REGQUERY_UTIL
                + "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\" + "Explorer\\Shell Folders\" /v Startup";
     
     
        private static final String REGSTR_TOKEN = "REG_SZ";
     
        public static String getStartupFolderPath() {
            try {
                Process process = Runtime.getRuntime().exec(STARTUP_FOLDER_CMD);
                InputStreamReader reader = new InputStreamReader(process.getInputStream());
                BufferedReader bufferedReader = new BufferedReader(reader);
     
                String result = null;
                String line = null;
                while ((line = bufferedReader.readLine())!=null){
                    result+=line;
                }
                if (result == null) {
                    return null;
                }
                int p = result.indexOf(REGSTR_TOKEN);
                if (p == -1)
                    return null;
                return result.substring(p + REGSTR_TOKEN.length()).trim();
            } catch (Exception e) {
                return null;
            }
        }
    C'est un peu fait à l'arrache, donc il faut peut-être affiner mais ça à l'air de bien fonctionner.

  4. #4
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    L'API des Preferences, parfaitement standard et inclue dans le JDK depuis la 1.4, et calée sur la base des registres de windows, lorsque c'est windows, bien sûr.

  5. #5
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    Merci pour l'info. Je vais regarder ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupérer le chemin du répertoire local (Mac OS)
    Par nekcorp dans le forum Général Python
    Réponses: 2
    Dernier message: 10/05/2014, 00h25
  2. [Vista] Récupérer le chemin du répertoire utilisateur
    Par homeostasie dans le forum Windows
    Réponses: 6
    Dernier message: 18/04/2009, 10h01
  3. [RCP] Récupérer le chemin du répertoire d'une application RCP
    Par nienor dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 21/03/2007, 09h56
  4. Réponses: 4
    Dernier message: 08/08/2006, 23h33
  5. [VB]récupérer le chemin d'accès du répertoire de profile
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 06/02/2006, 10h37

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