begin process at 2012 05 29 12:43:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Modifier une variable environnement user ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Modifier une variable environnement user ?

jeudi 13 octobre 2005 à 20:54:04 | Modifier une variable environnement user ?

chuckboy

Bonjour

La question est dans le titre !

J'ai une variable d'environnement utilisateur que j'aimerais modifier à partir mon programme comment puis-je faire ?
SSROOT c:\toto

J'ai deja essayer
_putenv("SSROOT",c:\nono");
SetEnvironmentVariable("SSROOT","c:\nono");

thks
jeudi 13 octobre 2005 à 21:02:49 | Re : Modifier une variable environnement user ?

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
SetEnvironmentVariable doit fonctionner mais juste pour le process appelant.
Si c'est pour tout le system, faut écrire dans la BDR et envoyer unWM_SETTINGCHANGE.

ciao...
BruNews, MVP VC++
jeudi 13 octobre 2005 à 21:11:55 | Re : Modifier une variable environnement user ?

chuckboy

Ok j'explique plus en details

Mon programme apelle un autre executable creer dans un process et c'est celui ci qui a besoin de cette variable d'environnement.
Je ne veut pas que le changement demeure une fois l'execution du programme terminer.

C'est possible ?

thks

jeudi 13 octobre 2005 à 21:17:35 | Re : Modifier une variable environnement user ?

BruNews

Administrateur CodeS-SourceS
Passe l'enviroment dans le 7eme param de CreateProcess.

ciao...
BruNews, MVP VC++
jeudi 13 octobre 2005 à 21:23:55 | Re : Modifier une variable environnement user ?

chuckboy

Voici ma fonction

void LancementProcess(const std::string sCheminComplet,const std::string sNumeroTest)
{
 //Change la variable environnement
 SetEnvironmentVariable(TEXT("sgmroot"),TEXT("c:\\SGMTEST1\\DEV"));

 // Prepare the external script execution via a process

 std::string _CommandLine = sCheminComplet + " " + sNumeroTest;

 STARTUPINFO _SI;

 PROCESS_INFORMATION _PI;

 // Connect standard handles

 ZeroMemory(&_SI,sizeof(STARTUPINFO));

 _SI.cb=sizeof(STARTUPINFO);

 _SI.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;

 _SI.wShowWindow=SW_HIDE;

 _SI.dwFlags=STARTF_USESTDHANDLES;

 _SI.hStdInput=NULL;

 _SI.hStdOutput=NULL;

 _SI.hStdError=NULL;

 // Create process and wait for achievement

 CreateProcess(NULL, (LPTSTR)_CommandLine.c_str(), NULL, NULL, TRUE, NULL, NULL, NULL, &_SI, &_PI);

 DWORD _Result = WaitForSingleObject(_PI.hThread, INFINITE);
}

Je voit pas trop ce que tu veut dire par passer l'Environnement , quoique j'ai bien essayer de lui passer directement "sgmroot=c:\\test1"

jeudi 13 octobre 2005 à 21:40:56 | Re : Modifier une variable environnement user ?

BruNews

Administrateur CodeS-SourceS
Exemple ici avec CreateProcess:
[ Lien ]

ciao...
BruNews, MVP VC++
jeudi 13 octobre 2005 à 21:47:18 | Re : Modifier une variable environnement user ?

chuckboy

Ouais je sais j'avais deja cet exemple le problème est qu'il lui passe l'Argument null , c'est a dire selon msdn le même environnement que la thread qui cree le process , pourtant ca fonctionne pas.

Ce que j'aimerais c'est un exemple pour lui passer directment une variable environnement parce que l'a ca fonctionne reelement pas.

J'aurais tu besoin d'utiliser un WM_SETTINGCHANGE pour que ca fonctionne ?

jeudi 13 octobre 2005 à 22:01:19 | Re : Modifier une variable environnement user ?

BruNews

Administrateur CodeS-SourceS
mais non passe simplement ta variable d'environment dans le 7eme param de CreateProcess, c'est clair non ?
Mets un 2eme ZERO en final de ta variable.

ciao...
BruNews, MVP VC++
jeudi 13 octobre 2005 à 22:06:57 | Re : Modifier une variable environnement user ?

chuckboy

Desoler , je comprend pas vite vite la.

J'essait comme ca et ca fonctionne pas

Mon process ce creer mais ma variable d'environnement n'est pas la sgmroot=c:\\SGMTEST1\\dev

CreateProcess(NULL, (LPTSTR)_CommandLine.c_str(), NULL, NULL, TRUE, NULL,"sgmroot=c:\\SGMTEST1\\dev", NULL, &_SI, &_PI);

Tu veut dire quoi par mettre un 2eme ZERO en final de ta variable ?
jeudi 13 octobre 2005 à 22:21:31 | Re : Modifier une variable environnement user ?

chuckboy

Mon probleme viendrait pas du fait que il ya deux type de variable d'environnement , les sytems et les users ?
Ma variable a modifier est une variable user.

1 2

Cette discussion est classée dans : variable, modifier, user, environnement, ssroot


Répondre à ce message

Sujets en rapport avec ce message

Variable d'environnement [ par krovomite ] Je voulais savoir comment ou l'on pouvait recuperer les variables d'environnement...Notemment le bureau.Merci beaucoup !!!Si la connaissance peut cree [Debutant C ] Modifier un bit dans une variable [ par GentooUser ] Salut,Voila j'ai une variable de type BYTE (unsigned char) donc 8bits, et j'aimerai pouvoir définir à 1 ou 0 chaque bits de la variable independement. passage par reference [ par jfk20004 ] je ne comprends pas le principe qui consiste à pouvoir modifier une variable par un passage par reference.Une variable n'est elle pas comme son nom le Codyx [ par SAKingdom ] Ce message s'adresse à tout ceux qui ont les autorisations nécessaire sur codyx pour modifier supprimer et éditer des snippets (Power User 2). Ête vou variable d'environnement [ par romainbisson ] Bonjour,je voudrais créer une variable d'environnement dans un programme en Cune fois crée, je voudrais lui donné comme valeur une chaine de caractere Problème pour conparer une variable [ par Demonium29 ] Bien le bonjours, alors voila je fait appelle a votre aide que je bloque sur un petit quelque chose qui dois être tout simple en réalité.Je cherche a variable environnement [ par 24Karas ] Bonjour, Comment ajouter une variable d'environnement au systeme ?J'ai tenté putenv("AAA=VALLLLL"); mais si je vérifie dans "panneau de config > syste Probléme RSA [ par scharly3 ] Bonjour , Mon probléme est que mon code qui exploite la formule mathématique du RSA mais avec une toute petite clé me renvoi des informations fausses appeler procedure passage par variable [ par sakjimh ] salut,j'ai reussit a crée une procedure qui initialise une matrice carrée avec un pointeur  **pvoid ini_matrice(int **p,int n){    int i,j;    p=(int modifier une valeur dans explorer [ par unionx ] bonjouravec le programme resource hacker je peux acceder directement a la valeur (StringTable->37->1036  puis le nom demarrer)comment je peux faire ça


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales