[..] Problème avec EnvSet()

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ethneldryt
Status : Hors ligne

[..] Problème avec EnvSet()

#1

Message par ethneldryt »

Voila, grâce aux variable d’environnement, j'ai réussi a me créer plusieurs applications portable.
Mais malheureusement je bloque sur quelque chose.

Je fais donc EnvSet("localappdata",@scriptdir & "\local") et je devrais tomber sur "C:\Users\Acer\AppData\Local"
Ça ne fonctionne pas pour toute les applications, donc je vous demande, est ce la bonne variable a mettre ou il y en a une autre? Merci.

ps : j'essai de faire une version portable de join.me
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Problème avec EnvSet()

#2

Message par Tlem »

ImageImage

Hey man,elle doit vraiment être bonne pour que vous soyez dans cet état !!! :lol:
Dés que la fumée sera dissipée de votre esprit, lisez ce qui suit :

EnvSet écrit une variable d'environnement. C'est à dire que c'est vous qui déterminez la valeur de cette variable au moment ou vous lancez la commande.
Lorsque vous faites:

Code : Tout sélectionner

EnvSet("localappdata",@scriptdir & "\local")
vous dites à Windows que la variable d'environnement %localappdata% sera égale à @scriptdir & "\local". Et comme @scriptdir dépend de l'endroit ou ce trouve le script, ce ne sera pas forcément "C:\Users\Acer\AppData\Local". ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
ethneldryt
Status : Hors ligne

Re: [..] Problème avec EnvSet()

#3

Message par ethneldryt »

oula, je viens de re lire, j'ai mal expliquer mon problème.
je veux dire que la var %localappdata% ne fonctionne pas toujours même en la déclarant.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Problème avec EnvSet()

#4

Message par Tlem »

Probablement dût à un compte limité ou à l'UAC, ou plus probablement à ceci :
Remarks
A environment variable set in this way will only be accessible to programs that AutoIt spawns (Run, RunWait). Once AutoIt closes, the variables will cease to exist.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

Re: [..] Problème avec EnvSet()

#5

Message par lesolutionneur »

C'est comme ça partout, sauf si tu fais une variable persistante.

Par exemple, pour la ligne de commande, tu peux définir une variable mais seuls les programmes lancés avec pourront accéder à sa valeur.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Problème avec EnvSet()

#6

Message par jguinch »

Bonsoir.
Es-tu sûr que le join.me fait bien référence à la variable LOCALAPPDATA ?

J'ai effectué le petit test suivant, depuis une fenêtre DOS :
set HOMEDRIVE=c:\temp\homedrive
set HOMEPATH=c:\temp\homepath
set LOCALAPPDATA=c:\temp\localappdata
set TMP=c:\temp\tmp
set TEMP=c:\temp\temp
set USERPROFILE=c:\temp\userprofile
join.me.exe

Une fois le programme lancé, les fichiers se retrouvent dans c:\temp\tmp, doncà priori ce serait plutôt la variable TMP qui est utilisée par join.me.

Avec ProcessMonitor, aucun autre chemin défini ci-dessus n'est accédé.

Code : Tout sélectionner

EnvSet("TMP", @ScriptDir)
Run("join.me.exe")
Ca a l'air de fonctionner...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre