L'auteur
Gregory Adam Belgique Membre Actif (personne physique) # 0000001121 enregistré le 04/06/2006 Fiche personnelle
Note des membres
pas de note
Contributions > 05 - API et appels systèmes
Les variables d'environnement windows
# 0000000336
ajouté le 23/06/2006 17:44:31 et modifié le 26/06/2006
consulté 9357 fois
Niveau
initié Version(s) Foxpro : VFP 9.0 VFP 8.0 VFP 7.0 VFP 6.0 VFP 5.0 VFP 3.0
Code source :
#include "FoxPro.h"
#define TRUE .T.
#define FALSE .F.
#define BOOL Integer
#define LPCTSTR String @
#define LPTSTR String @ && correction 26/06/2006
#define DWORD Long
&& do this once
declare BOOL GetEnvironmentVariable in kernel32 ;
LPCTSTR lpName, ; && // environment variable name
LPTSTR lpBuffer,; && // buffer for variable value
DWORD nSize && // size of buffer
declare BOOL SetEnvironmentVariable in kernel32 ;
LPCTSTR lpName,; && // environment variable name
LPCTSTR lpValue && // new value for variable
#if FALSE
function Test()
local s
assert EnvironmentVariable_Get('PATH' , @m.s)
assert EnvironmentVariable_Set('HAHA' , 'www.xxx.zzz' )
assert EnvironmentVariable_Get('HAHA' , @m.s)
assert m.s == 'www.xxx.zzz'
endfunc
#endif
*---------------------------------------------------------------------------
function EnvironmentVariable_Set(ev_Name, ev_Value)
return !empty (SetEnvironmentVariable(@m.ev_Name, @m.ev_Value))
endfunc
*---------------------------------------------------------------------------
function EnvironmentVariable_Get(ev_Name, ev_Value)
local l, n
l = 1024
ev_value = space (m.l)
n = GetEnvironmentVariable(@m.ev_Name, @m.ev_Value, m.l)
do case
case empty (m.n)
ev_value = '' && does not exist, or empty
return TRUE
case m.n < m.l
ev_value = left (m.ev_value, m.n)
otherwise
l = m.n
ev_value = space (m.l)
n = GetEnvironmentVariable(@m.ev_Name, @m.ev_Value, m.l)
do case
case m.n + 1 <> m.l
assert FALSE
return FALSE
otherwise
ev_value = left (m.ev_value, m.n)
endcase
endcase
endfunc
*---------------------------------------------------------------------------
Commentaires
Aucun commentaire enregistré ...