这样写对吗?
 Reg.RootKey := HKEY_CURREN_USER;    if Reg.OpenKey('\SYSTEM\CurrentControlSet\Control\Session Manager\Environment', True) then
    begin
      addpath := Reg.ReadString('path');
      if pos('c:\oracle\ora92\bin', addPath) <= 0 then
        Reg.WriteString('path', addpath + ';c:\oracle\ora92\bin');
    end;为什么写了后path值都无效了?原来的那些路径都失效了

解决方案 »

  1.   

    Reg.RootKey := HKEY_Local_MACHINE;
      

  2.   

    Reg.WriteString('path', addpath + ';c:\oracle\ora92\bin');
    -------------------
    addpath + ';c:\oracle\ora92\bin'???
      

  3.   

    我知道了 ,要用WriteExpandString
      

  4.   

    你的RootKey的确是错了,这样你还能执行里面的程序吗?
      

  5.   

    嗯,是类型写入时的类型不匹配。
    记得以前有人遇过读写不了REG_MULTI_SZ类型的数据,最后是没用TRegistry,用API来实现。