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