BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 oct. 2005 à 21:02
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.
cs_chuckboy
Messages postés64Date d'inscriptionvendredi 16 septembre 2005StatutMembreDernière intervention31 mars 20091 13 oct. 2005 à 21:11
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.
cs_chuckboy
Messages postés64Date d'inscriptionvendredi 16 septembre 2005StatutMembreDernière intervention31 mars 20091 13 oct. 2005 à 21:47
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 ?
cs_chuckboy
Messages postés64Date d'inscriptionvendredi 16 septembre 2005StatutMembreDernière intervention31 mars 20091 13 oct. 2005 à 22:21
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.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 oct. 2005 à 22:38
Tu as regardé le 1er exemple des 3 fournis à l'URL indiquée plus haut ?
Il y a la mise du second terminateur NULL (qu'on peut largement simplifier) et le passage du param à CreateProcess, tout ce qu'il faut.
cs_chuckboy
Messages postés64Date d'inscriptionvendredi 16 septembre 2005StatutMembreDernière intervention31 mars 20091 14 oct. 2005 à 17:26
Un gros merci à BruNews
J'ai enfin comprit d'ou venait mon probleme , un gros merci pour ton aide mais je me suis enfin rendut compte que la task que je creait au lieu d'hériter des variables d'environnement allais reloader les variables d'environnement.
Ca ma au moin permis de bien comprendre comment ca fonctionne les variable environnement.
Pour mon probleme la solution etait
Changer la variable d'environnement dans le registry
Ensuite faire un refresh à l'aide de la commande :
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0L, (LPARAM) "Environment", SMTO_ABORTIFHUNG, 1, NULL);