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

C Discussion :

ecrire dans une variable d'environnement


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Par défaut ecrire dans une variable d'environnement
    bonjour,

    existe t'il une fonction en C qui permet d'ecrire une chaine de caractères dans une variable d'environnement?
    je suis sous windows et je souhaite ajouter le chemin d'execution du mon programme dans la variable d'environnement PATH.

    merci d'avance pour vos réponse

    ++

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par gy0m76
    existe t'il une fonction en C qui permet d'ecrire une chaine de caractères dans une variable d'environnement?
    je suis sous windows et je souhaite ajouter le chemin d'execution du mon programme dans la variable d'environnement PATH.
    Il n'y a pas de fonction standard pour faire ça. A quoi ça pourrait bien servir ? Aux processus fils appelés par system() ?

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Par défaut
    j'ai fait un programme qui utilise gtk, se programme télécharge sur le net les librairies nécessaires a sont execution, et je voudrais ajouter dans la variable PATH le chemin ou j'ai télécharger les librairies.
    j'ai vu qu'avec la fonction CreateProcess:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    BOOL WINAPI CreateProcess(
      LPCTSTR lpApplicationName,
      LPTSTR lpCommandLine,
      LPSECURITY_ATTRIBUTES lpProcessAttributes,
      LPSECURITY_ATTRIBUTES lpThreadAttributes,
      BOOL bInheritHandles,
      DWORD dwCreationFlags,
      LPVOID lpEnvironment,
      LPCTSTR lpCurrentDirectory,
      LPSTARTUPINFO lpStartupInfo,
      LPPROCESS_INFORMATION lpProcessInformation
    );
    lpEnvironment
    [in] A pointer to the environment block for the new process. If this parameter is NULL, the new process uses the environment of the calling process.
    An environment block consists of a null-terminated block of null-terminated strings. Each string is in the form:

    name=value

    Because the equal sign is used as a separator, it must not be used in the name of an environment variable.

    An environment block can contain either Unicode or ANSI characters. If the environment block pointed to by lpEnvironment contains Unicode characters, be sure that dwCreationFlags includes CREATE_UNICODE_ENVIRONMENT. If this parameter is NULL and the environment block of the parent process contains Unicode characters, you must also ensure that dwCreationFlags includes CREATE_UNICODE_ENVIRONMENT.

    Note that an ANSI environment block is terminated by two zero bytes: one for the last string, one more to terminate the block. A Unicode environment block is terminated by four zero bytes: two for the last string, two more to terminate the block.
    mais je n'arrive pas a l'utiliser

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Sous Windows, je pense qu'utiliser SetEnvironmentVariable() sera plus simple...

    Edit: L'exemple 2 est fait pour toi...
    http://msdn2.microsoft.com/en-gb/library/ms682009.aspx
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Par défaut
    merci medinoc pour ton aide, la fonction SetEnvironmentVariable est exactement ce qu'il me faut. J'avais deja essayé avec celle-ci mais je regardait dans "system\variable d'environnement\path" et le chemin que je lui demande d'inclure n'y apparaissai jamais donc je pensait que ca ne marchait pas!!!
    As tu une idée du pourquoi elle n'apparait pas???
    sinon encore merci a vous ++

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par gy0m76
    "system\variable d'environnement\path" et le chemin que je lui demande d'inclure n'y apparaissai jamais donc je pensait que ca ne marchait pas!!!
    Tu es bien au courant que dans une chaine C, \ se code \\ ...

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

Discussions similaires

  1. Ecrire dans une variable d'environnement
    Par kkt8 dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 20/04/2012, 08h39
  2. Test d'une variable d'environnement dans un Shell
    Par padraig29 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 27/09/2007, 21h54
  3. [WIN2003]définir une variable d'environnement dans un batch
    Par creezeer dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 28/08/2007, 11h25
  4. Écrire du HTML dans une variable
    Par chienlou dans le forum Langage
    Réponses: 13
    Dernier message: 15/05/2006, 17h54
  5. Réponses: 11
    Dernier message: 08/02/2006, 16h59

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