Page 1 sur 1

Les variables d'environnement [Resolu]

Publié : mar. 14/juin/2011 16:02
par Kwai chang caine
Bonjour à tous

1/ Quelqu'un saurait quel est le maximum de caracteres que l'on peut mettre dans une variable d'environnement ??
2/ Les variable d'environnement que PB utilise ont elle a voir avec celles qu'on trouve dans "Parametre systeme avancé/Variables environnement"

Car j'en ai créé une à la main et je ne la trouve pas en faisant ce code :

Code : Tout sélectionner

If ExamineEnvironmentVariables()
    While NextEnvironmentVariable()
      Debug EnvironmentVariableName() + " = " + EnvironmentVariableValue()
    Wend
  EndIf
Bonne journée

Re: Les variables d'environnement

Publié : mar. 14/juin/2011 16:18
par dayvid
Quelqu'un saurait quel est le maximum de caracteres que l'on peut mettre dans une variable d'environnement ??
Je dirais pareil que pour pure basic non ?, je ne sais pas !
Les variable d'environnement que PB utilise ont elle a voir avec celles qu'on trouve dans "Parametre systeme avancé/Variables environnement
A mon humble avis, oui

Re: Les variables d'environnement

Publié : mar. 14/juin/2011 16:35
par Kwai chang caine
Tu as raison DAYVID
Apparement la limite est de 32766 caracteres, je suppose que ce doit etre la meme pour toute variable :roll:

Code : Tout sélectionner

Canal = ReadFile(#PB_Any, #PB_Compiler_Home + "\Compilers\APIFunctionListing.txt")

If Canal
 
 Repeat
  Variable$ + ReadString(Canal)
 Until Eof(Canal) <> #False
  
EndIf 

CloseFile(Canal)
SetEnvironmentVariable("Kcc", Left(Variable$, 32766))
Debug Len(Variable$)

If ExamineEnvironmentVariables()
 While NextEnvironmentVariable()
   Debug EnvironmentVariableName() + " = " + EnvironmentVariableValue()
 Wend
EndIf
Il reste encore ma seconde question, apparement les variables d'envoronnement se créé et se detruisent a chaque programme.

Peut on en creer une qui reste comme on fait avec le panneau de windows ????
Pourquoi je ne vois pas celle que j'ai créé à la main avec le panneau windows dans le code ci-dessus ??

Ce ne serait donc pas les memes ?? :roll:

Re: Les variables d'environnement

Publié : mar. 14/juin/2011 16:40
par dayvid
Tu as raison DAYVID
Apparement la limite est de 32766 caracteres, je suppose que ce doit etre la meme pour toute variable
Erreur :lol:

Pour une variable Pure Basic, ce n'est pas 256 caractère max ?, je se sais plus
et pour les chaine littérale, un truc comme 4000 quelque chose

J'ai eu un souci dernièrement avec ça

Désolé, je ne peux pas t’aider car je ne connais rien dans ce domaine

Re: Les variables d'environnement

Publié : mar. 14/juin/2011 16:51
par nico
Le nombre de caractère est de 32,767 characters

La durée de vie de la variable est la durée de vie du process qui la créé

Si tu veux créer une variable système, c'est dans le registre que ça se pasee à partir de window 2000
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment

Re: Les variables d'environnement

Publié : mar. 14/juin/2011 17:16
par Kwai chang caine
Merci beaucoup NICO
Grace à toi je viens de comprendre la difference entre les variables environnements Systeme et Application 8)

Pour les applications, comme tout ce qui est de al memoire d'un process, je suppose qu'elle ne sont pas partageable :roll:

Si je veux passer des données par ce biais, je suppose aussi que je dois utiliser les variables systeme ?? :roll:

Re: Les variables d'environnement

Publié : mar. 14/juin/2011 18:03
par nico
Tu veux faire quoi exactement, echanger des donnees entre deux process?

Re: Les variables d'environnement

Publié : mer. 15/juin/2011 8:32
par Kwai chang caine
Oui c'est ça :D

Y'a comme tu me l'as dit sur l'autre POST le FileMapping ou bien les Pipes, la mémoire partagée, etc....mais je ne voulais pas trop d'une usine a gaz.
C'est juste pour transferer une grosse variable structurée
Alors j'ai pensé aux variables environnements, mais comme je ne les ai jamais utilisées, je ne les connais pas

J'ai pas compris d'ailleurs a quoi sert une variables environnements de process puisqu'apparement on ne peut la partager avec un autre process ??? 8O
Si c'est pour avoir une variable que l'on ne peut lire que dans un process, y'a les GLOBAL, SHARED, etc... :roll:

Pour les variables environnements systeme, c'est simple a comprendre, car tous les process peuvent les lire, la au moins on comprend à quoi ça sert :D

Re: Les variables d'environnement

Publié : jeu. 16/juin/2011 8:26
par Kwai chang caine
Personne ne pourrait m'expliquer quel est l'avantage des variables environnements locales, si elles ne peuvent pas etre lues dans un autre process ???
Peut etre peuvent etre lues par la DLL car je sais que chaque DLL partage le meme espace mémoire ??? :roll:

Re: Les variables d'environnement

Publié : jeu. 16/juin/2011 9:59
par falsam
Kwai chang caine a écrit :Personne ne pourrait m'expliquer quel est l'avantage des variables environnements locales, si elles ne peuvent pas etre lues dans un autre process ???
Si tu lances un code depuis ton code qui contient la création de ta variable d'environnement tu peux controler cette variable.

Premier programme

Code : Tout sélectionner

SetEnvironmentVariable("%Nom","KKC")
RunProgram("mainproc2")
Deuxième programme qui affichera la variable %Nom (A compiler sous le nom mainproc2.exe)

Code : Tout sélectionner

MessageRequester("Information",GetEnvironmentVariable("%Nom"))
J’espère ne pas être hors sujet :)

Re: Les variables d'environnement

Publié : jeu. 16/juin/2011 10:09
par djes
Google est ton ami : http://castelain.developpez.com/article ... ronnement/
# SetEnvironmentVariable : Cette fonction permet d'ajouter, de modifier ou de supprimer une variable de l'environnement du processus courant. Si la valeur passée est nulle, la variable est supprimée, sinon la variable est modifiée dans le cas où elle existe déjà et créée dans le cas où elle n'existe pas.
Attention, comme nous l'avons déjà vu, ces modifications ne sont valables que pour l'environnement du processus courant (en général l'application) et par héritage pour l'environnement des processus enfants du processus courant.

Re: Les variables d'environnement

Publié : jeu. 16/juin/2011 10:31
par Kwai chang caine
Falsam a écrit :J’espère ne pas être hors sujet
Mais pas du tout du tout...t'es en plein dans le milles 8)

Je comprend mieux maintenant, j'avais pensé aux DLL, qui partagent l'espace memoire de l'exe qui la charge, mais jamais au RunProgram()
D'ailleurs c'est drolement puissant ce RunProgram() :?
Comme beaucoup de gens qui utilisent qu'une infime partie de ce qu'il possede, faute de connaissances

Je ne l'utilisais que pour lancer un autre programme et basta :oops:
Mais en creusant, j'ai trouvé plein d'ossements à faire palir un paleonthologue :mrgreen:
Et encore...on peut pas dire que l'on m'appelle "la pelleteuse" quand je m'interesse a un sujet.."le plumeau" serait mieux approprié :oops:
Mais bon...ce que j'aurais appris dans cette rubrique est fort interessant 8)

Merci beaucoup FALSAM de ton explication

@DJES
Tu as raison une vraie mine d'or ce TUTO 8)
Merci beaucoup DJES
Djes a écrit :Google est ton ami
Oui mais toi aussi :mrgreen:

J'hesite toujours a regarder ailleurs que dans l'environnement PB, car j'ai toujours peur que ça ne s'applique pas à PB
C'est parfois tellement dur de comprendre, alors imagine je lis un dictionnaire de tuto, et qu'apres tu me dise, :" Oui mais avec PB, c'est pas pareil" 8O
Le suicide n'est pas loin :lol:

Alors quand j'aime bien comprendre un sujet, je me permet de poser la question sur les 2 forums, pour que si une ame charitable veuille bien me donner des liens ou des explications, je suis sur que je puisse l'appliquer à notre PB d'amour :D

Et puis aussi, ça nous auras permis de parler chiffon toi et moi aujourd'hui :mrgreen:
Encore merci
Et n'oublie pas que je t'aime :lol: