Variables d'environnement et Sendmessage

WSTBoss Messages postés 16 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 27 octobre 2011 - 16 déc. 2002 à 17:57
WSTBoss Messages postés 16 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 27 octobre 2011 - 23 déc. 2002 à 15:04
Bonjour à tous,

voilà mon probleme :
sous windows 2000, j'ai un petit prog qui crée une variable d'environnement et qui envoie un message à windows pour lui dire que cette variable existe, voici le code :

procedure SetSystemEnvironmentVariable (const name, value : string);
var
rv : DWORD;
begin
with TRegistry.Create do
try
RootKey := HKEY_LOCAL_MACHINE;
OpenKey ('SYSTEM\CurrentControlSet\Control\Session Manager\Environment', False);
WriteExpandString (name, value);
SendMessageTimeout (HWND_BROADCAST, WM_SETTINGCHANGE, 0, LParam
(PChar ('Environment')), SMTO_ABORTIFHUNG, 5000, rv);
finally
Free
end
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
SetSystemEnvironmentVariable('TOTO','c:\home');
end;

La variable est bien connue dans une fenetre MS-Dos mais si je lance un fichier bat (par double click ou lancer par un autre programme) qui fait reference à cette variable alors il ne la trouve pas.
Exemple du contenu de mon fichier bat:

@echo off
echo %TOTO%
pause

Resultat:
%TOTO% n'existe pas.

Si je ferme ma session Windows et que je la réouvre alors là, la variable est bien connue !

Quelqu'un a deja rencontré le probleme ?

merci d'avance pour votre aide.

WSTBoss! 8-)

1 réponse

WSTBoss Messages postés 16 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 27 octobre 2011
23 déc. 2002 à 15:04
Personne ne peut m'aider ?

WSTBoss! 8-)
0
Rejoignez-nous