begin process at 2012 02 12 17:39:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > [VISUAL BASIC] CHANGEMENT DE VARIABLES D'ENVIRONNEMENT EN BROADCOAST (POUR TOUS PROCESSSUS)

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


 Information sur la source

Note :
9 / 10 - par 3 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Niveau :Débutant Date de création :09/03/2004 Date de mise à jour :10/05/2006 13:45:31 Vu :6 826

Auteur : Hecco

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 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"
  

Source

  • '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()
  • 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 Sub
'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()
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 Sub

 Conclusion

Remerciement aux personnes du forum qui m'on permis de m'aiguiller dans cette voie.


 Historique

10 mai 2006 13:45:31 :
Notification d'une source VB

 Sources du même auteur

Source .NET (Dotnet) [DOTNET] CHANGEMENT DE VARIABLES D'ENVIRONNEMENT EN BROADCOA...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

Commentaires et avis

Commentaire de thierrydelepine le 09/03/2004 17:59:04

Tres interressant cette notion de broadcast via SendMessage et surtout cela peut etre utile pour des changements linguistiques par exemple ( a tester ).

10/10

Commentaire de sima1 le 19/05/2006 18:28:26

c est quoi exactement la fonction "donnervaleur"?
merci

Commentaire de JLN le 08/01/2007 08:08:31

Je crois qu'on le saura jamais !
Quand on poste on poste tout ou rien !

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales