[inno setup]学习入门之二 关于写入注册表的一点注意

  使用inno setup 操作注册表无非就是写入、查询、删除

//查询path,放入变量oldPath中

  RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'path', oldPath);

 //写入字符xxx到环境变量path中,当然,xxx既可以是单纯的字符串,也可以是字符串变量

  RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'path', ‘xxx’);
  //删除环境变量path

  RegDeleteValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment','path');


上面的内容网上都有,不啰嗦,关于操作环境变量时需要注意一点:就是环境变量的安装过程中不生效的问题,即值是写入了,但是没有生效。这就导致了如果后面的操作可以查看这个值,但是不能依赖这个值的生效,比如mysql的注册服务、tomcat的注册服务等等。举个例子:你不能先将其bin目录写入环境变量,然后直接使用形如

 Exec(‘mysqld install mysql ’, '', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);

 ShellExec('open' , ExpandConstant('{cmd}'), '/c mysqld install mysql  ', '',SW_HIDE, ewWaitUntilTerminated, ErrorCode);这些命令来依赖环境变量中刚刚写入的msyql_home\bin

因为那个安装过程中写入的环境变量没有生效。


解决方法:直接切换到bin目录下去执行,或干脆直接使用完整的bin路径去执行bin下的命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值