在win2K&XP下用的好好的函数,在Vista下WriteString时出错不知是何原因????
 
function RegWriteValue(key,value: string):integer;
var
    Reg: TRegistry;
  begin
    Reg := TRegistry.Create;
    try
      Reg.RootKey := HKEY_LOCAL_MACHINE;
      if Reg.OpenKey(Key, True) then
        Reg.WriteString('', Value);//在这里提示出错,写不了数据
    finally
      Reg.CloseKey;
      Reg.Free;
    end;
    result := 1;
end;

解决方案 »

  1.   

    這里貌似可以貼圖片了吧? Reg.WriteString( " ",   Value);//在这里提示出错,写不了数据   ,,前面一個參數能為空嗎?
      

  2.   

    可以,为空,写的是(默认)的键值在win2k和winxp下都可以
    在vista下,不管为不为空,都写不了
    大家现在有没有在vista下做程序???这个问题应比较常见吧帮帮我吧
      

  3.   

    應該是沒有權限寫鍵值,Vista的一般用戶是沒有權限這樣寫的。
      

  4.   

    我试过,在标准用户中,手工修改regedit,确实是没有权限修改
    可我用管理员用户登陆后,手工可以修改regedit,但程序WriteString仍出错