Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » [RESOLU] Comment utiliser la fonction KERNEL32 SetEnvironmentVariableA()?
  • 1 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 10

#1 20-03-2008 10:33:21

themoyo  
Membre
Date d'inscription: 20-03-2008
Messages: 4
Pépites: 19
Banque: 0

[RESOLU] Comment utiliser la fonction KERNEL32 SetEnvironmentVariableA()?

Bonjour ,

Je suis en train de me cassé la tête a cherche de l'aide sur la fonction SetEnvironmentVariableA() qui doit me permettre de modifier ma variable d'environnement PATH.
Quelqu'un de la communauté PB l'a déjà utilisée? si oui, comment?

Merci encore pour votre aide.

Dernière modification par themoyo (20-03-2008 15:39:14)

Hors ligne

 

#2 20-03-2008 10:48:16

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Comment utiliser la fonction KERNEL32 SetEnvironmentVariableA()?

Bonjour et

il faut déclarer la fonction externe : (en local ou global)

Code: pb

Function Boolean SetEnvironmentVariableA( string szName, string szValue ) Library "kernel32.dll"

ensuite pour l'appel :

Code: pb

Boolean lb_ok

lb_ok = SetEnvironmentVariableA( 'PATH', 'chemins' )

// test de retour lb_ok

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 20-03-2008 11:20:36

themoyo  
Membre
Date d'inscription: 20-03-2008
Messages: 4
Pépites: 19
Banque: 0

Re: [RESOLU] Comment utiliser la fonction KERNEL32 SetEnvironmentVariableA()?

Déja merci pour l'info, c'est gentil.

Sinon, je me pose la question suivante :

es que avec le code suivant, l'ancien PATH va étre ecrasé oubien concaténer avec le nouveau chemin?

ErAsORz a écrit:

Code: pb

Boolean lb_ok

lb_ok = SetEnvironmentVariableA( 'PATH', 'chemins' )

// test de retour lb_ok

Pérsonnélement, je pense qu'il va l'ecraser => se qui m'obiligerait donc d'utiliser GetEnvironmentVariableA.
Si c'est le cas, comment faire

Hors ligne

 

#4 20-03-2008 11:34:23

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2492
Pépites: 103
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Comment utiliser la fonction KERNEL32 SetEnvironmentVariableA()?

Bonjour,

Tu pourras trouver ton bonheur au niveau de ce topic


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#5 20-03-2008 13:44:08

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Comment utiliser la fonction KERNEL32 SetEnvironmentVariableA()?

themoyo a écrit:

es que avec le code suivant, l'ancien PATH va étre ecrasé oubien concaténer avec le nouveau chemin?

fais le test...

themoyo a écrit:

Pérsonnélement, je pense qu'il va l'ecraser => se qui m'obiligerait donc d'utiliser GetEnvironmentVariableA.
Si c'est le cas, comment faire

Code: pb

Function Long GetEnvironmentVariableA (String lpName, Ref String lpBuffer,Long nSize) Library "kernel32" Alias For
"GetEnvironmentVariableA;ansi" 

String ls_path = Space (255)
Long ll_l = 255
GetEnvironmentVariableA ('PATH', ls_path , ll_l) 

// ajout chemins
ls_path += ';chemin1;chemin2...'

SetEnvironmentVariableA( 'PATH', ls_path )

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#6 20-03-2008 14:21:33

themoyo  
Membre
Date d'inscription: 20-03-2008
Messages: 4
Pépites: 19
Banque: 0

Re: [RESOLU] Comment utiliser la fonction KERNEL32 SetEnvironmentVariableA()?

Le code si dessous ne fonctionne pas.
le ls_path reste vide. je ne vois pas pourquoi.

ErAsORz a écrit:

Code: pb

Function Long GetEnvironmentVariableA (String lpName, Ref String lpBuffer,Long nSize) Library "kernel32" Alias For
"GetEnvironmentVariableA;ansi" 

String ls_path = Space (255)
Long ll_l = 255
GetEnvironmentVariableA ('PATH', ls_path , ll_l) 

// ajout chemins
ls_path += ';chemin1;chemin2...'

SetEnvironmentVariableA( 'PATH', ls_path )

Hors ligne

 

#7 20-03-2008 14:36:42

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 30-05-2006
Messages: 4682
Pépites: 1,016
Banque: 2,147,483,647
Site web

Re: [RESOLU] Comment utiliser la fonction KERNEL32 SetEnvironmentVariableA()?

Alias For
"GetEnvironmentVariableA;ansi"

pour la version pb10 et pb11

sinon ,

Code: pb

FUNCTION uLong GetEnvironmentVariableA(String lpszName, REF String lpszValue, uLong dwcValue) library "Kernel32.dll" 

CONSTANT Integer MAX_PATH_LEN = 260 // Path can be up to 260 characters 
String ls_Path 
ls_Path = Space(MAX_PATH_LEN) // By making the string 260 characters, we're "reserving" 261 bytes of memory 
GetEnvironmentVariableA("PATH", ls_Path, MAX_PATH_LEN + 1)

Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#8 20-03-2008 15:23:03

themoyo  
Membre
Date d'inscription: 20-03-2008
Messages: 4
Pépites: 19
Banque: 0

Re: [RESOLU] Comment utiliser la fonction KERNEL32 SetEnvironmentVariableA()?

Merci encore pour tout pick ouic.

Pour info:

Lors de la déclaration il ne faut pas oublier le ALIAS FOR  "GetEnvironmentVariableA;Ansi"  car c'est ce qui ma posé probléme.
Vous trouverez un code qui fonctionne a merveille.

ASTUS : Le premier Get me permet de récupérer la Taille du PATH

Code: pb

FUNCTION uLong GetEnvironmentVariableA(String lpszName, REF String lpszValue, uLong dwcValue) library "Kernel32.dll" ALIAS FOR  "GetEnvironmentVariableA;Ansi" 

Taille = GetEnvironmentVariableA("PATH",ref Path,0) // it's return length of Path
Path = space(Taille)                      // Initialisation of string Path
GetEnvironmentVariableA("PATH",ref Path,Taille)    // Recup of real Path
SetEnvironmentVariableA("PATH",RepSyb + "dll;" + RepSyb + "dll\Debug;" + RepSyb + "bin;" + Path) // Set of Path

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » [RESOLU] Comment utiliser la fonction KERNEL32 SetEnvironmentVariableA()?
  • 1 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 101 évaluations, moyenne 10

Pied de page des forums

Propulsé par FluxBB 1.2.22