How to propagate environment variables to the system
HKEY_CURRENT_USER \ EnvironmentYou can modify system environment variables by editing the followingRegistry key:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ EnvironmentNote that any environment variable that needs to be expanded (for example,when you use %SYSTEM%) must be stored in the registry as a REG_EXPAND_SZregistry value. Any values of type REG_SZ will not be expanded when readfrom the registry.
Note that RegEdit.exe does not have a way to add REG_EXPAND_SZ. UseRegEdt32.exe when editing these values manually.
However, note that modifications to the environment variables do notresult in immediate change. For example, if you start another CommandPrompt after making the changes, the environment variables will reflect theprevious (not the current) values. The changes do not take effect until youlog off and then log back on.
To effect these changes without having to log off, broadcast aWM_SETTINGCHANGE message to all windows in the system, so that anyinterested applications (such as Windows Explorer, Program Manager, Task Manager, ControlPanel, and so forth) can perform an update.
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM) "Environment", SMTO_ABORTIFHUNG, 5000, &dwReturnValue);
Article ID: 104011 - Last Review: 01/18/2007 22:40:24 - Revision: 5.3
- kbhowto kbsyssettings KB104011