程序修改Windows环境变量生效
来源:互联网 发布:python % 编辑:程序博客网 时间:2024/05/16 15:14
修改Windows环境变量生效
bruce | 五月 27,2005 12:37http://blog.9zi.com/post/1/805
不少程序需要添加各自的环境变量,方便定制性使用。用得最多的是用户指定目录如JAVA_HOME等变量,程序中可以根据获取变量%JAVA_HOME%,来获取对应设置的字符串。
一般做法是安装的时候就指定,或者程序中设定。
用批处理临时设置环境变量就不提了,这里讲让环境变量始终生效。
一般做法是修改环境变量注册表。
整个Windows都有效的环境变量在
HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerEnvironment
中设置
对当前用户有效的环境变量在
HKEY_CURRENT_USEREnvironment
中设置
其实只是简单的元数据
但往往修改玩后无法即时生效,往往需要重启系统。
要解决即时生效的问题,可以再在我的电脑属性中设置环境变量中确定一下即可。
依此看来,这个过程肯定是读取了注册表,再调用一个系统函数来更新整个系统的变量。一定可以编程解决的。
可惜网海茫茫,收不到。
一不做二不休,直接下载打开innosetup的代码,搜索Environment,果真找到了。
很简单:
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,LPARAM("Environment"), SMTO_ABORTIFHUNG, 5000, &MsgResult);
发一个全局的广播,等待各自相应后,立即生效。
{ Note: We originally used SendNotifyMessage to broadcast the message but it
turned out that while it worked fine on NT 4 and 2000 it didn't work on XP
-- the string "Environment" in lParam would be garbled on the receiving
end (why I'm not exactly sure). We now use SendMessageTimeout as directed
in the KB article 104011. It isn't as elegant since it could cause us to
be delayed if another app is hung, but it'll have to do. }
Log It,以备后来者检索。
- 程序修改Windows环境变量生效
- Windows不重启使环境变量修改生效
- Windows不重启使环境变量修改生效
- Windows不重启就使环境变量修改生效
- Windows不重启就使环境变量修改生效
- 详解Windows不重启使环境变量修改生效(经典)
- windows环境变量修改立刻生效的办法
- 详解Windows不重启使环境变量修改生效(经典)
- Windows修改java环境变量不生效
- windows修改完环境变量立即生效
- 解决修改windows环境变量需要重启才能生效
- Windows不重启使环境变量修改生效的详细步骤
- Windows环境变量的生效
- Windows不重启使环境变量生效
- linux修改环境变量并生效
- 让环境变量生效不需重启Windows
- 让环境变量生效不需重启Windows
- Windows下环境变量快速生效
- URI和URL的区别
- 老外的售前过程怎么做
- m选n算法
- 上海高考惊现0分作文 只因描写同性恋题材
- 子类化隐藏Alerter服务的例子
- 程序修改Windows环境变量生效
- 封包和拆包
- 我,me,我的Blog,my Blog.
- Spring中的Rod Johnson 与“轮子理论”
- 清华研制成功脑机接口系统 可用思维控制
- 我终于用到了委托
- 决定何时使用 DataGrid、DataList 或(Repeater(ASP.NET 技术文章)Z
- 一个很简单的获得sqlserver建表sql(create table)的方法
- lftp