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” 博客,谢绝转载!
出现这个问题的原因是脚本代码中更新环境变量时没有给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” 博客,谢绝转载!
相关文章推荐
- InstallShield修改环境变量后不能立即生效的问题
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- 修改Windows环境变量后不重新启动使之立即生效的方法
- 在同一台电脑机器上安装多个版本jdk,修改环境变量路径不生效的问题
- switchHosts!修改hosts后不能立即生效的问题
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- 解决Windows下修改环境变量后需重启才能生效的问题(转)
- NSIS 使用SendMessage环境变量不能立即生效解决办法(进程中无效)
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- 通过bat脚本修改环境变量并且不用重启立即生效
- windows7下修改环境变量立即生效
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- 修改JDK环境变量,不生效的问题
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法
- 控制shell脚本执行频率、解决shell脚本不能修改环境变量等问题
- window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法[转]