您的位置:首页 > 其它

InstallShield修改环境变量后不能立即生效的问题

2014-09-15 15:50 316 查看
创建一个InstallScript脚本的InstallShield安装程序,在脚本代码中更新环境变量,更新后发现注册表和计算机->属性->高级->环境变量中的变量值都更新了,但是使用命令行(WIN+R,CMD)始终获取不到设置的环境变量。

出现这个问题的原因是脚本代码中更新环境变量时没有给windows系统发送更新的通知事件。虽然网上有很多该问题的解决办法,但是我做了很多遍都不正确。最后在InstallShield自带的帮助文档中(搜索“Environment Variables”,然后在See Also中有个“Environment Variables Example”,点击进去),然后直接拷贝到你的代码中即可。需要注意:
1、pEnv的类型是WPOINTER,不是很多网上说的PONITER;
2、两个宏定义的HWND_BROADCAST和WM_WININICHANGE的值;

3、还是直接拷贝过去吧……

修改环境变量和卸载时删除环境变量的部分可以参考:
http://blog.csdn.net/amy0428/article/details/6579264 ,但是在修改和删除的最后记得加上本文中所提到的通知。另外,使用CurrentControlSet,不要使用ControlSet001、ControlSet002这种。具体的windows控件集的区别可以参考:http://blog.csdn.net/xujianlane/article/details/1861929

本文出自 “winger” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐