通过注册表让程序开机启动

 1 procedure SetAutoRun(sName, sPath: string; bAdd: boolean);
 2 var
 3   Reg : TRegistry; //首先定义一个TRegistry类型的变量Reg
 4   openResult : Boolean;
 5 begin
 6   Reg:=TRegistry.Create;
 7   try //创建一个新键
 8   Reg.RootKey := HKEY_LOCAL_MACHINE; //将根键设置为HKEY_LOCAL_MACHINE
 9   Reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionRun',true);//打开一个键
10   if bAdd then begin
11     Reg.WriteString(sName, sPath); //在Reg这个键中写入数据名称和数据数值
12   end
13   else begin
14     Reg.DeleteValue(sName);
15   end;
16     Reg.CloseKey; //关闭键
17   finally
18     Reg.Free;
19   end;
20 end;

需要注意的是,如果程序是32位的,而操作系统是64位的,则实际写入注册表的位置是:

HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRun

原文地址:https://www.cnblogs.com/CipherLab/p/12757523.html