Delphi 注册表操作

unit UnitRegeditFuns;

interface

uses
  Windows, Registry;
         
function CheckRegEdit(dwRootKey: DWORD; subKey, sName, sValue: string): Boolean;
procedure SetRegEdit(dwRootKey: DWORD; subKey, sName, sValue: string);
         
function CheckAutoRun(sName, sValue: string): Boolean;
procedure SetAutoRun(sName, sValue: string);

implementation


{-------------------------------------------------------------------------------
  过程名:    CheckRegEdit
  过程描述:  检查注册表
  作者:      LYK
  日期:      2018.12.29
  参数:       dwRootKey: DWORD; 主键
              subKey: string    子健
              sName:  string
              sValue: string
  返回值:    Boolean
-------------------------------------------------------------------------------}
function CheckRegEdit(dwRootKey: DWORD; subKey, sName, sValue: string): Boolean;
var
  Reg: TRegistry;
begin
  Result:= False;
  Reg:=TRegistry.Create;
  try
    Reg.RootKey:= dwRootKey;
    Reg.OpenKey(subKey,True);
    if Reg.ValueExists(sName) then
    begin
      if Reg.ReadString(sName)= sValue then
        Result:= True;
    end;
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end;

{-------------------------------------------------------------------------------
  过程名:    SetRegEdit
  过程描述:  设置注册表
  作者:      LYK
  日期:      2018.12.29
  参数:       dwRootKey: DWORD;  主键
              subKey: string     子健
              sName:  string
              sValue: string
  返回值:    无
-------------------------------------------------------------------------------}
procedure SetRegEdit(dwRootKey: DWORD; subKey, sName, sValue: string);
var
  Reg: TRegistry;
begin
  Reg:=TRegistry.Create;
  try
    Reg.RootKey:=dwRootKey;
    Reg.OpenKey(subKey, True);
    Reg.WriteString(sName, sValue);
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end;

   

{-------------------------------------------------------------------------------
  过程名:    CheckAutoRun
  过程描述:  检查开机自启动
  作者:      LYK
  日期:      2018.12.29
  参数:      sName, sValue: string
  返回值:    Boolean
-------------------------------------------------------------------------------}
function CheckAutoRun(sName, sValue: string): Boolean;
var
  Reg: TRegistry;
begin
  Result:= False;
  Reg:=TRegistry.Create;
  try
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True);
    if Reg.ValueExists(sName) then
    begin
      if Reg.ReadString(sName)= sValue then
        Result:= True;
    end;
    Reg.CloseKey;
  finally
    Reg.Free;
  end;

end;

{-------------------------------------------------------------------------------
  过程名:    SetAutoRun
  过程描述:  设置开机自启动
  作者:      LYK
  日期:      2018.12.29
  参数:      sName, sValue: string
  返回值:    无
-------------------------------------------------------------------------------}
procedure SetAutoRun(sName, sValue: string);
var
  Reg: TRegistry;
begin
  Reg:=TRegistry.Create;
  try
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',True);
    Reg.WriteString(sName, sValue);
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end;

end.

猜你喜欢

转载自blog.csdn.net/liang08114/article/details/85334588