请问通过修改注册表的方法添加系统环境变量后如何使添加的系统变量立即生效?(100分)

  • 主题发起人 主题发起人 dejoy
  • 开始时间 开始时间
D

dejoy

Unregistered / Unconfirmed
GUEST, unregistred user!
: 我可以通过修改注册表的方法添加系统变量,比如修改path,但程序执行后虽然系统环境变量已经修改,但未立即生效,要通过以下两种方法之一才能生效:1.重新启动计算机。2.我的电脑->属性->高级->环境变量,然后在弹出的对话框中点击一下"确定".
我想达到就是执行程序后添加修改的系统环境变量立即生效,而不用重启或手工操作方法2.
查看执行程序后修改的变量是否立即生效的方法:
打开一个dos窗口,输入set命令,就能看到修改或添加的变量是否已经生效了.
 
关注注册表的这两个目录:
1、(这个好像没什么作用?)
HKEY_CURRENT_USER /
Environment

2、(这个是关键东西)
HKEY_LOCAL_MACHINE /
SYSTEM /
CurrentControlSet /
Control /
Session Manager /
Environment
 
这个是在MS的网站上看到的。。我试过,可以永久修改环境变量。
 
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,(LPARAM)TEXT("Environment"));
 
谢谢Devchenxip,怎么你的回复只显示些.....?看不到内容?
从自动发送的回复邮件中来看,你说的是修改环境变量的注册表地方,这个我找到了.我问的是修改了以后如何使修改立即生效.

我试试李翔鹏的方法
 
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,integer(Pchar('Environment')));
 
谢谢两位,SendMessage的方法可行.
 
多人接受答案了。
 
后退
顶部