现在的位置: 首页 > 综合 > 正文

windows中对环境变量操作实质上是对注册表的操作

2013年05月23日 ⁄ 综合 ⁄ 共 1811字 ⁄ 字号 评论关闭

You   can   modify   user   environment   variables   by   editing   the   following   Registry   key:   
HKEY_CURRENT_USER   \    Environment   

You   can   modify   system   environment   variables   by   editing   the   following   Registry   key:   

HKEY_LOCAL_MACHINE   \   SYSTEM   \   CurrentControlSet   \   Control   \   Session   Manager   \   Environment   

Note   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_SZ   registry   value.   Any   values   of   type   REG_SZ   will
  not   be   expanded   when   read   from   the   registry.   

Note   that   RegEdit.exe   does   not   have   a   way   to   add   REG_EXPAND_SZ.   Use   RegEdt32.exe   when   editing   these   values   manually.   

However,   note   that   modifications   to   the   environment   variables   do   not   result   in   immediate   change.   For   example,   if   you   start   another   Command   Prompt   after   making   the   changes,   the   environment   variables   will
  reflect   the   previous   (not   the   current)   values.   The   changes   do   not   take   effect   until   you   log   off   and   then   log   back   on.   

To   effect   these   changes   without   having   to   log   off,   broadcast   a  WM_SETTINGCHANGE  
message   to   all   windows   in   the   system,   so   that   any   interested   applications   (such   as   Program   Manager,   Task   Manager,   Control   Panel,   and   so   forth)   can   perform   an   update.

For example, on Windows NT-based systems, the following code fragment should propagate the changes to the environment variables used in the Command Prompt:
 
     SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,(LPARAM) "Environment", SMTO_ABORTIFHUNG,5000, &dwReturnValue);
None of the applications that ship with Windows 95 and Windows 98, including Windows Explorer and Program Manager, respond to this message. Thus, while this article can technically be implemented on Windows 95 and Windows 98, there is no effect except to notify
third-party applications. The only method of changing global environment variables on Windows 95 is to modify the autoexec.bat file and reboot.

抱歉!评论已关闭.