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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值