替换掉红色部分 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.

评论