Les variables d'environnement [Resolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Les variables d'environnement [Resolu]

Message 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
Dernière modification par Kwai chang caine le jeu. 16/juin/2011 10:39, modifié 1 fois.
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Les variables d'environnement

Message 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
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Les variables d'environnement

Message 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:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Les variables d'environnement

Message 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
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Les variables d'environnement

Message 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
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Les variables d'environnement

Message 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:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Les variables d'environnement

Message par nico »

Tu veux faire quoi exactement, echanger des donnees entre deux process?
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Les variables d'environnement

Message 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
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Les variables d'environnement

Message 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:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Les variables d'environnement

Message 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 :)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Les variables d'environnement

Message 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.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Les variables d'environnement

Message 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:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre