Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[DOTNET] CHANGEMENT DE VARIABLES D'ENVIRONNEMENT EN BROADCOAST (POUR TOUS PROCESSSUS)


Information sur la source

Description

Ce code permet de changer une ou plusieurs variable(s) d'environnement sous windows 2000 pour l'ensemble des applications d'un poste sans rebooter.

>> Il ne faut pas utiliser l'API : SetEnvironmentVariable, car celle-ci, ne fait que de changer la valeur de la ou des variable(s) d'environnement pour un 1 seul processus.<<

Le but de ce code est de changer la ou les variables d'environnement pour tous les processus de windows sans rebooter. Pour cela il faut modifier la base de registre au niveau de : "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" (sous Win2000) et par suite d'envoyer un message en BroadCoast à tout l'os pour lui spécifier le changement de variables.

On utilise l'api : Private Declare Function SendMessage Lib "user32", cependant sous dotnet l'utilisation des bibliothèques statiques de windows doivent être appeler et Marshaliser.
 

Source

  • Imports System.Runtime.InteropServices
  • Imports System.Text
  • Public Class ImportsApi
  • Public Const WM_SETTINGCHANGE = 26
  • Public Const HWND_BROADCAST = 65535
  • '--This function sends the specified message to a window or windows--
  • Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
  • (ByVal hwnd As Integer, ByVal Msg As Integer, _
  • ByVal wParam As Integer, _
  • <MarshalAs(UnmanagedType.AsAny)> ByVal lParam As Object) As Integer
  • Public Function changement() As Boolean
  • dim tmp as string
  • 'Chaine du path
  • tmp = "SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\ESSBASE6\BIN;C:\ESSBASE6\API\Redist;c:\sys\ora8i\bin;c:\sys\orawinnt\bin;C:\Sys\Pcom\;C:\Program Files\IBM\Trace Facility\;C:\PROGRA~1\CONTINUUS\CCM51\BIN;C:\ARBORPATH\bin"
  • 'Modifie la base de registre de windows (DonnerValeur est un fonction de modification de d'un clé de registre que vous pouvez retrouver ici )
  • Call DonnerValeur(0, "SYSTEM\CurrentControlSet\Control\Session Manager\Environment", "ARBORPATH", "C:\ARBOR")
  • Call DonnerValeur(0, "SYSTEM\CurrentControlSet\Control\Session Manager\Environment", "Path", tmp)
  • 'Message en Broadcoast pour l'envoie du changement à tous les processus de windows concernant cette modification
  • Call SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, "Environment")
  • End Function
  • End Class
Imports System.Runtime.InteropServices
Imports System.Text
Public Class ImportsApi
    Public Const WM_SETTINGCHANGE = 26
    Public Const HWND_BROADCAST = 65535

    '--This function sends the specified message to a window or windows--
    Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
       (ByVal hwnd As Integer, ByVal Msg As Integer, _
        ByVal wParam As Integer, _
       <MarshalAs(UnmanagedType.AsAny)> ByVal lParam As Object) As Integer

    Public Function changement() As Boolean
dim tmp as string 
  
'Chaine du path 
tmp = "SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\ESSBASE6\BIN;C:\ESSBASE6\API\Redist;c:\sys\ora8i\bin;c:\sys\orawinnt\bin;C:\Sys\Pcom\;C:\Program Files\IBM\Trace Facility\;C:\PROGRA~1\CONTINUUS\CCM51\BIN;C:\ARBORPATH\bin" 
  
  
'Modifie la base de registre de windows (DonnerValeur est un fonction de modification de d'un clé de registre que vous pouvez retrouver ici ) 
Call DonnerValeur(0, "SYSTEM\CurrentControlSet\Control\Session Manager\Environment", "ARBORPATH", "C:\ARBOR") 
Call DonnerValeur(0, "SYSTEM\CurrentControlSet\Control\Session Manager\Environment", "Path", tmp) 
  
'Message en Broadcoast pour l'envoie du changement à tous les processus de windows concernant cette modification 
Call SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, "Environment") 
  
  
    End Function

End Class

Commentaires et avis

signaler à un administrateur
Commentaire de olixelle le 10/05/2006 17:34:36

Salut,

a mon avis tu te compliques considérablement la vie.
Il y a un objet dans le framework qui te permet de gérer directement les var d'environnement...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Dedans SVP [ par Goustaf ] Je désire accéder aux variables d'environnement. j'ai vu qu'il existe la commande ENVIRON(idx) qui me renvoie la valeur de ma variable d'environnement Addin - variable d'environnement - type de de variable [ par wardall ] Bonjour,J'ai fait un "Addin" pour VB et je cherche à récupérer les types de variables d'environnement possibles pour une declaration de variable.C'est environnement windows [ par poulipe ] Bonjour,je voudrais que mon application, demarre en lisant une variable d'environnement, set monappli= c:\monapplipar exemple, et lire un fichier ini Changer le chemin d'une variable d'environnement [ par PeTeRsLaStAr ] BonjourLors de la création d'une variable d'environnement (dans la base de registre donc), je souhaiterais savoir s'il y a moyen de lui indiquer dans Problème API et variable d'environnement [ par Hecco ] Bonjour,J'ai un petit problème avec les variables d'environnements sous Win2000 et VB.Je cherche à modifier une variable d'environnement au sein de wi lecture variable d'environnement [ par vbusinor ] comment faire pour récupérer ou écrire dans une variable d'environnement?Merci d'avance variable en vbscript [ par ] Bonjour,Petite question:je voudrais lire un fichier texte du style:#Variable 1var1=v1var2=v2et mettre dans des variables vbs les noms de ces variable variable environnement [ par hujikole2 ] Bonjour,Voila je cherche a recuperer le numero du pc, mais je ne sais pas comment faire.Pour le nom de l'utilisateur , je fais:l_user = UCase(Environ( Variable d'environnement SetEnvironmentVariable [ par kligeo ] La commande SetEnvironmentVariable ne fonctionne pas sur mon PC, aucune variable n'est modifié ou crée (LA commande Get ne fonctionne pas non plus). P variable d'environnement [ par gp91 ] je vais installer une application sur un cd rom qui va copier des fichers d'exerces sur le bureau de l'ordinateur, j'ai la solution pour trouver le ch


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 2,808 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.