Varible environnement Windows

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Varible environnement Windows

Messagepar stloje » 27 Jan 2010 à 14:57

J'essaie d'accéder aux variables d'environnement Windows en utilisant la commande suivante

Code : Tout sélectionner
Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableA" (Byval lpName As String, lpBuffer As String) As Long

Dim envVariableValue as string
Dim lVarValue as Long

lVarValue = GetEnvironmentVariable ("AppData", envVariableValue)



J'ai la bonne longueur de chaîne dans la variable lVarValue, mais celle devant contenir la valeur de retour est vide (envVariableValue).

Quelqu'un a déjà fait quelque chose de similaire?
Dernière édition par stloje le 27 Jan 2010 à 15:14, édité 1 fois.
Et vive le cambouis! Si t'en as jusque sous les bras, c'est parce que tu as cherché longuement la solution ou tout simplement parce que tu t'es vautré!
Avatar de l’utilisateur
stloje
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 335
Inscrit(e) le : 09 Sep 2008 à 13:18
Localisation : Orléans

Messagepar Michael DELIQUE » 27 Jan 2010 à 14:59

salut

une version sans API

Code : Tout sélectionner
Public Function WindowsGetVariable(wVariable As String) As String
   'cette fonction renvois le contnue d'une variable windows ex %USERNAME%
   
   'Déclaration variable
   Dim vrShell As Variant
'   Dim vrSysEnv As Variant
   
   On Error Goto ErreurHandle
   
   If Trim(wVariable) = "" Then
      WindowsGetVariable = ""
      Exit Function
   End If
   
   If Session Is Nothing Then
      Set Session = New NotesSession
   End If
   
   If Session.NotesBuildVersion<190 Then
      'inférieur à la version R6
      Set vrShell = CreateObject("WScript.Shell")
      WindowsGetVariable = vrShell.ExpandEnvironmentStrings(wVariable)
      
   'si ça ne marche pas utiliser cette version du code
'   Set vrSysEnv = vrShell.Environment("SYSTEM")
'   WindowsGetVariable = vrSysEnv(wVariable)
      
      Set vrShell = Nothing
'   Set  vrSysEnv = Nothing
      
   Else
      WindowsGetVariable = Environ$(wVariable)
   End If
   
   Exit Function
ErreurHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   WindowsGetVariable = ""
   Exit Function
End Function


Code : Tout sélectionner
Public Sub WindowsSetVariable(wVariable As String, wValeur As String)
      'Déclaration variable
   Dim vrShell As Variant
   
   On Error Goto ErreurHandle
   
   If Trim(wVariable) = "" Then
      Exit Sub
   End If
   
'   If Trim(wValeur) = "" Then
'      Exit Sub
'   End If
   
   Set vrShell = CreateObject("WScript.Shell")
   vrShell.Environment("PROCESS").Item(wVariable) = wValeur
   
   Set vrShell = Nothing
   Exit Sub
ErreurHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   Exit Sub
End Sub
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar stloje » 27 Jan 2010 à 15:03

Merci Michael, j'essaie cela tout de suite après que mon Notes se soit remit d'un plantage!
Et vive le cambouis! Si t'en as jusque sous les bras, c'est parce que tu as cherché longuement la solution ou tout simplement parce que tu t'es vautré!
Avatar de l’utilisateur
stloje
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 335
Inscrit(e) le : 09 Sep 2008 à 13:18
Localisation : Orléans

Messagepar stloje » 27 Jan 2010 à 15:14

Ca fonctionne!

Je ne connaissais pas la fonction "Environ$". Dire que ça fait 4h que je me torture les méninges :twisted:
Et vive le cambouis! Si t'en as jusque sous les bras, c'est parce que tu as cherché longuement la solution ou tout simplement parce que tu t'es vautré!
Avatar de l’utilisateur
stloje
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 335
Inscrit(e) le : 09 Sep 2008 à 13:18
Localisation : Orléans

Messagepar nemrod93 » 27 Jan 2010 à 15:53

:D :D :D
Moi non plus je ne connaissais pas ENVIRON$
C'est bien cool!

Merci :D :D :D

Cdlt

Alain
Avatar de l’utilisateur
nemrod93
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 378
Inscrit(e) le : 04 Déc 2008 à 10:26
Localisation : Saint Malo

Messagepar Steph_ » 03 Fév 2010 à 09:55

bonjour

Ça m'a l'air bien pratique tout ça
il n'y aurait pas quelque part une liste de toutes les fonctions possibles avec environ ?
Avatar de l’utilisateur
Steph_
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 354
Inscrit(e) le : 24 Nov 2005 à 20:06
Localisation : Besançon


Retour vers Développement

cron