ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Les variables d'environnement windows   



L'auteur

Gregory Adam
Belgique 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é 6638 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é ...

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2020.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3