Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

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 09: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 14:39:14)

Hors ligne

 

#2 20-03-2008 09: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 10: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 10:34:23

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

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 12: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

// déclaration de la fonction externe
Function Long GetEnvironmentVariableA (String lpName, Ref String lpBuffer,Long nSize) Library "kernel32" Alias For
"GetEnvironmentVariableA;ansi" 

// récup du path actuel
String ls_path = Space (255)
Long ll_l = 255
GetEnvironmentVariableA ('PATH', ls_path , ll_l) 

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

// màj path
SetEnvironmentVariableA( 'PATH', ls_path )

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

Hors ligne

 

#6 20-03-2008 13: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

// déclaration de la fonction externe
Function Long GetEnvironmentVariableA (String lpName, Ref String lpBuffer,Long nSize) Library "kernel32" Alias For
"GetEnvironmentVariableA;ansi" 

// récup du path actuel
String ls_path = Space (255)
Long ll_l = 255
GetEnvironmentVariableA ('PATH', ls_path , ll_l) 

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

// màj path
SetEnvironmentVariableA( 'PATH', ls_path )

Hors ligne

 

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

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
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 14: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