码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-09-15 19:45:10      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:installshield 环境变量 立即更新

    


    创建一个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” 博客,谢绝转载!

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

标签:installshield 环境变量 立即更新

原文地址:http://imu2008.blog.51cto.com/3844842/1552927

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!