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

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.

转载于:https://www.cnblogs.com/java0721/archive/2012/07/19/2602972.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值