IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Les variables d'environnements


Sujet :

Windows

  1. #1
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Les variables d'environnements
    Bonjour,
    Je suis sur l'install d'un produit qui me pose des soucis (Catia version ACE 9.0 pour ceux qui connaisent) sur du Windows XP Sp2
    Après pas mal de galères sur les scripts d'install (en VBS et BAT) du logiciel, j'arrive a l'installer mais certains paramètres ne sont pas correctement pris en compte, je m'explique ....
    Pour faire démarer le soft en prennant en compte les infos de config, je doit ouvrir les propriétées du poste de travail, aller sur avancer , variables d'environnement et sans rien modifier cliquer sur OK (On voit le sablier qui témoigne de l'activiter de windows) et la surprise ca fonctionne !!!
    Donc ma question est double :
    1/ Que fait Windows quand je clique sur OK ?(Ca c'est pour ma culture perso )
    2/ Comment automatiser ca via un script ou autre chose ? Parceque mes utilisateurs sont des noobs complet et que je ne veut pas les mettre administrateur de leur machine pour faire cette manip...
    Merci d'avance de vos réponses, suggestions, commentaires, etc...

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    salut
    Citation Envoyé par Lucky Hal
    1/ Que fait Windows quand je clique sur OK ?(Ca c'est pour ma culture perso )
    Il met à jour la base de registre et informe peut être les autres process de la maj de ces variables. Cf. http://castelain.developpez.com/arti...Environnement/
    Citation Envoyé par Lucky Hal
    2/ Comment automatiser ca via un script ou autre chose ? Parceque mes utilisateurs sont des noobs complet et que je ne veut pas les mettre administrateur de leur machine pour faire cette manip...
    Utilise une fichier de registry avec Regedit /S NomDeFichier mais les variables ne seront renseignées que pour le compte utilisateur courant et pas pour le système.

  3. #3
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    Merci pour la réponse, j'ai compris comment ca marche mais maintenant, j'ai le probleme d'envoyer ce fameux message pour repartir la valeur de la variable, j'ai acces comme language a du vbs et au bon vieux batch et la je bloque un peu pour envoyer le message au systeme, j'ai trouver pas mal de code VB, mais VBS nada...
    Donc si quelqu'un peu m'aider, je veut bien lui bruler un cierge jusqu'a la fin de ma vie (Ce qui risque d'etre court vu l'etat nerveux de mon Boss a force d'attendre la solution miracle)...

  4. #4
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Re bonjour,
    toujours le même problème mais cette fois, j'ai accès a vb en express edition...
    Du coup tout content, j'ai essayer ca inspirer d'un code trouvé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Public Class Form1
        'API
        Private Declare Function SendMessage Lib "user32" _
            Alias "SendMessageA" (ByVal hwnd As Long, _
            ByVal wMsg As Long, ByVal wParam As Long, _
            ByVal lParam As String) As Long
    
        'CONSTANTE   
        Private Const WM_SETTINGCHANGE = &H1A
        Private Const HWND_BROADCAST = &HFFFF&
    
    
        Private Sub changement()
            'Modifie la base de registre de windows 
            Dim cle, cletemp, msg As String
            Dim i As Integer
    
            cle = "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet00"
            For i = 1 To 9 Step 1
                cletemp = cle + i.ToString + "\Control\Session Manager\Environment"
                If My.Computer.Registry.GetValue(cletemp, _
                        "TrCatiaPath", Nothing) Is Nothing Then
                    msg = cletemp + " non trouver !!"
                    MsgBox(msg)
                Else
                    msg = cletemp + " OK !!"
                    MsgBox(msg)
                    My.Computer.Registry.SetValue(cletemp, "TrCatiaPath", "c:\test")
                End If
            Next
            'Message en Broadcoast pour l'envoie du changement à tous les processus de windows concernant cette modification
            cle = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
            My.Computer.Registry.SetValue(cle, "TrCatiaPath", "c:\test2")
            Call SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, "Environment")
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            changement()
        End Sub
    End Class
    Mais a l'execution j'ai un problème :
    Bien que le registre se mette a jour correctement, l'appel a SendMessage me renvoit un problème de signature, pourtant je ne vois pas où je peut avoir des soucis de paramètres !!!
    SVP au secours .....
    Merci d'avance ....

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1

  6. #6
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Alors, voila la solution ....
    Ca ne fonctionne qu'avec le framework .net 2.0 mais c'est deja ca...
    Déjà, pour eviter le pb de signature, il faut declarer les long en integer...
    Ensuite il existe un objet qui fait ca directement, voici le code coriger et c'est beaucoup plus court :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Class Form1
        Private Sub changement()
    
            Environment.SetEnvironmentVariable("TrCatiaPath", "c:\test4", EnvironmentVariableTarget.Machine)
    
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            changement()
        End Sub
    End Class
    Donc un grand merci a tous....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Free Pascal] Comment gérer les variables d'environnement
    Par TheBigMac dans le forum Free Pascal
    Réponses: 4
    Dernier message: 15/04/2006, 11h32
  2. Comment modifier les variables d'environnement ?
    Par Jean-Jacques Engels dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2005, 22h42
  3. Les variables d'environnement
    Par stoyak dans le forum Développement OS X
    Réponses: 11
    Dernier message: 04/11/2005, 12h02
  4. les variables d'environnement
    Par micknic dans le forum Linux
    Réponses: 8
    Dernier message: 25/04/2005, 14h30
  5. [.NET]Modifier les variables d'environnement dans...
    Par GusS dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 09/02/2005, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo