环境变量

        我在做一个Delphi7的绿色版,用Inno setup 来做了一个绿化注册程序(初学),想在注册的时候把delphi的目录添加到系统环境变量path中,不重启立即生效.倒是找到相关的代码,不过是delphi的,没法在inno setup script中运行. 特请教对Inno setup script 熟悉的达人.
下面是我的CODE段代码:

var 
  FRootDir: string; 
  
procedure _SetDelphiPath(aIsInstall: Boolean); 
var 
  S_Path, s: string; 
  S1: string; 
begin 
  if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM/CurrentControlSet/Control/Session Manager/Environment', 'Path', S_Path) then 
  begin 
    if aIsInstall then 
      S1 := ExpandConstant('{src}/bin') 
    else 
      S1 := FRootDir + '/bin'; 

    if pos(Uppercase(S1), Uppercase(S_Path)) = 0 then //还没有加入 
    begin 
      if aIsInstall then 
      begin 
        S_Path := S_Path + ';' + S1; 
      end; 
    end else 
      if not aIsInstall then 
      begin 
        StringChangeEx(S_Path, S1 + ';', '', True); 
        StringChangeEx(S_Path, S1, '', True); 
      end; 

    if aIsInstall then 
      S1 := ExpandConstant('{src}/Projects/bpl') 
    else 
      S1 := FRootDir + '/Projects/bpl'; 

    if pos(Uppercase(S1), Uppercase(S_Path)) = 0 then //还没有加入 
    begin 
      if aIsInstall then 
      begin 
        S_Path := S_Path + ';' + S1; 
      end; 
    end else 
      if not aIsInstall then 
      begin 
        StringChangeEx(S_Path, S1 + ';', '', True); 
        StringChangeEx(S_Path, S1, '', True); 
      end; 

    RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM/CurrentControlSet/Control/Session Manager/Environment', 'Path', S_Path); 
  end; 
end; 

procedure DeinitializeUninstall(); 
begin 
  _SetDelphiPath(False); 
end; 

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); 
begin 
  FIsExists := False; 
  if CurUninstallStep = usUninstall then 
  begin 
    if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE/Borland/Delphi/7.0', 'RootDir', FRootDir) then 
    begin 
      StringChangeEx(FRootDir, '//', '/', True); 
      FRootDir := RemoveBackslash(FRootDir); 
    end; 
  end; 
end; 

procedure CurPageChanged(CurPageID: Integer); 
var 
  SL: TStringList; 
  S1: string; 
begin 
  if CurPageID = wpFinished then 
  begin 
    _SetDelphiPath(True); 

  
  //关键问题在下面的代码如何实现? 
  //SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,Integer(Pchar('Environment'))); 
  //这是我找到的delphi里的方法,在inno setup script里该怎么写?或是有其它的方法? 
  end; 
end;



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值