正文

读写注册表的接口程序2006-05-24 18:56:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/hofy/14799.html

分享到:

替换掉红色部分 unit uReadWriteReg; interface uses  registry, Windows; Const  SOFT_NAME = 'ScFltSearch';   function OpenRootKey(var Reg: TRegistry; canCreate: boolean): boolean;  procedure SetReg(Key: string; Value: string); overload;  procedure SetReg(Key: string; Value: integer); overload;  procedure SetReg(Key: string; Value: boolean); overload;  function GetReg(Key: string; var Value: string; default: string = ''): boolean; overload;  function GetReg(Key: string; var Value: integer; default: integer = 0): boolean; overload;  function GetReg(Key: string; var Value: boolean; default: boolean = false): boolean; overload;implementation function OpenRootKey(var Reg: TRegistry; canCreate: boolean): boolean;begin  result := true;  Reg := TRegistry.Create;  Reg.RootKey := HKey_CURRENT_USER;  if not Reg.KeyExists('SoftWare\' + SOFT_NAME) then  begin    Reg.OpenKey('SoftWare\' + SOFT_NAME, true);    result := false;  end  else Reg.OpenKey('SoftWare\' + SOFT_NAME, canCreate);end; procedure SetReg(Key: string; Value: integer); overload;var  Reg: TRegistry;begin  OpenRootKey(Reg, true);  Reg.WriteInteger(Key, Value);  Reg.CloseKey;  Reg.Free;end; procedure SetReg(Key, Value: string); overload;var  Reg: TRegistry;begin  OpenRootKey(Reg, true);  Reg.WriteString(Key, Value);  Reg.CloseKey;  Reg.Free;end; procedure SetReg(Key: string; Value: boolean); overload;var  Reg: TRegistry;begin  OpenRootKey(Reg, true);  Reg.WriteBool(Key, Value);  Reg.CloseKey;  Reg.Free;end; function GetReg(Key: string; var Value: string; default: string = ''): boolean; overload;var  Reg: TRegistry;begin  result := true;  if not OpenRootKey(Reg, true) then    Reg.WriteString(Key, default)  else    try      Value := Reg.ReadString(Key);      if length(Value) = 0 then      begin        Reg.WriteString(Key, default);        Value := default;      end;    except      Reg.WriteString(Key, default);      Value := default;      result := false;    end;  Reg.Free;end; function GetReg(Key: string; var Value: integer; default: integer = 0): boolean; overload;var  Reg: TRegistry;begin  result := true;  if not OpenRootKey(Reg, true) then    Reg.WriteInteger(Key, default)  else    try      Value := Reg.ReadInteger(Key);    except      Reg.WriteInteger(Key, default);      Value := default;      result := false;    end;  Reg.Free;end; function GetReg(Key: string; var Value: boolean; default: boolean = false): boolean; overload;var  Reg: TRegistry;begin  result := true;  if not OpenRootKey(Reg, true) then    Reg.WriteBool(Key, default)  else    try      Value := Reg.ReadBool(Key);    except      Reg.writebool(Key, default);      Value := default;      result := false;    end;  Reg.Free;end; end.

阅读(2276) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册