解决方案 »

  1.   

    uses
      System.Win.Registry;
    var
      MyReg: TRegistry;
    begin
      MyReg := TRegistry.Create;
      try
        MyReg.RootKey := HKEY_CURRENT_USER;
        MyReg.OpenKey('Environment', True);
        if not MyReg.ValueExists('Path') then
          MyReg.WriteString('Path','D:\delphi');
      finally
        MyReg.CloseKey;
        FreeAndNil(MyReg);
      end;
    end;
      

  2.   

    procedure SetRegStr(Path:string);
    var Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      try
        Reg.RootKey := HKEY_CURRENT_USER;
        Reg.OpenKey('Environment', True);
        if not Reg.ValueExists('Path')
        then Reg.WriteString('Path',Path)
        else begin
          S:=Reg.ReadString('Path');
          if Pos(Path,S)<=0 then
          begin
            S:=S+';'+Path;
            Reg.DeleteValue('Path');
            Reg.WriteString('Path',S);
          end;
        end;
      finally
        Reg.CloseKey;
        Reg.Free;
      end;
    end;
    1、检查是否有该路径,无就加入;
    2、可以重复加入路径;
      

  3.   

    SetRegStr(‘D:\delphi’);
    SetRegStr(‘C:\A\AB;D:\C\CD’);   // 有了Path再加入
    加入的字符就是D:\delphi;C:\A\AB;D:\C\CD3、也可以一次加入
    SetRegStr(‘D:\delphi;C:\A\AB;D:\C\CD’);完全符合你的要求。
      

  4.   

    我改了好几次,都感觉是因为
    procedure SetRegStr(Path:string); 
    这句话一直不好用,后来我直接把它给删了,居然还能用了,
    而且完全符合我想要的情况。谢谢二位了!