Récupérer une variable d'environnement [Résolu]

Signaler
Messages postés
97
Date d'inscription
mardi 24 mai 2005
Statut
Membre
Dernière intervention
25 juin 2006
-
Messages postés
3811
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
15 juin 2020
-
comment fait-ont pour récupérer une variable d'environnement?
avec un comSpec je croit mais je sais pas faire!

6 réponses

Messages postés
3811
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
15 juin 2020
30
Salut,
pour récupérer une variable d'environnement c'est simple il faut utiliser la procédure de l'unité Windows
comme ceci :

Function MakeValidDir(Directory: String): String;
Var eVariable : Array[0..512] Of Char;
Begin
ExpandEnvironmentStrings(PChar(Directory), @eVariable, 512);
Result := eVariable;
End ;



procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption : = MakeValidDir(Edit1.Text);
end;


{********************************************************************************}{


Voici la liste des variables d'environnement à utiliser entre deux "%"
Exemple : %AppData%
on peut aussi faire ceci %PROGRAMFILES%\Borland

liste extraite de l'aide de Windows
APPDATA
TEMP , TMP
COMPUTERNAME
CommonProgramFiles
COMSPEC
NUMBER_OF_PROCESSORS
OS
PROCESSOR_ARCHITECTURE
PROCESSOR_IDENTIFIER
PROCESSOR_LEVEL
PROCESSOR_REVISION
PROGRAMFILES
SYSTEMDRIVE
SYSTEMROOT
AllUsersProfile
USERPROFILE
WINDIR
The remainder are only available to interactive applications.


HOMEDRIVE
HOMEPATH
LOGONSERVER
USERDOMAIN
USERNAME
Only the WINDIR variable is available on Microsoft Windows® 95 and Windows 98 systems.}

Bonnes Fêtes
Messages postés
3811
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
15 juin 2020
30
Bonsoir Delphiprog,

encore une fonction que je ne connaissais pas, c'est dans ces moments que l'on voit la différence entre le maître et l'apprenti



@+
Cirec
Messages postés
97
Date d'inscription
mardi 24 mai 2005
Statut
Membre
Dernière intervention
25 juin 2006

MercI Beaucoup Pour Votre Aide
ET
BONNES FETES A TOUS!!!!!!!
Messages postés
3811
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
15 juin 2020
30
me voil
à
rassuré
maintenant,
la diffé
rence entre les deux c'est que l'
on
à
pas besoin de dé
clarer l'unité SysUtils puisqu'
elle se trouve dans l
'unité Windows. D'
ailleurs GetEnvironmentVariable existe aussi dans l
'unité Windows avec les mêmes paramètres que ceux de
ExpandEnvironmentStrings
?


Bon alors comme tu ne connaissais pas ExpandEnvironmentStrings
je me permet de te pr
é
senter sa petite soeur qui elle fait l'opération inverse.


Function PathUnExpandEnvStrings
(pszPath
: PAnsiChar
; pszBuf
: PAnsiChar
; cchBuf
:
Integer
): Boolean
; StdCall external
'ShlwApi.dll' name
'PathUnExpandEnvStringsA';


Function PathToEnvString
(lsPath
: String
):
String
;


Implementation


Function PathToEnvString
(lsPath
: String
):
String
;
Var eVariable
: Array
[
0..512] Of Char
;
Begin
Result
:=
EmptyStr;
PathUnExpandEnvStrings
( PChar
(lsPath
),
@eVariable
,
512);
Result
: = eVariable
;
End
;
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
27
Réponse :
GetEnvironmentVariable(Name:string):string;

<hr color="#008000">Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
27
Cirec : ne t'affoles pas, je ne connaissais pas non plus ExpandEnvironmentStrings ! lol
Un partout, balle au centre


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.