1、// 调用此函数查找注册表中是否有指定的值,真:自动启动; 假:未自动启动
function TfrmMain.GetAutoRunValue: Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create; //创建一个新键
try
Reg.RootKey := HKEY_LOCAL_MACHINE; //将根键设置为HKEY_LOCAL_MACHINE
Reg.OpenKey('\SOFTWARE\Microsoft\windows\CurrentVersion\Run', True); //打开一个键
if Reg.ValueExists('DetailServer') then
begin
if Application.ExeName = Reg.ReadString('DetailServer') then //文件名相同
Result := True
else
Result := False;
end else
Result := False;
finally
Reg.CloseKey;
FreeAndNil(Reg);
end;
end;
2、写入注册表,'DetailServer' 是应用程序的名称
procedure TfrmMain.SetAutoRun(Flag: Boolean);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create; //创建一个新键
try
Reg.RootKey := HKEY_LOCAL_MACHINE; //将根键设置为HKEY_LOCAL_MACHINE
Reg.OpenKey('\SOFTWARE\Microsoft\windows\CurrentVersion\Run', True); //打开一个键
if Reg.ValueExists('DetailServer') then Reg.DeleteValue('DetailServer');
if (Flag = True) then //加入
begin
Reg.WriteString('DetailServer', Application.ExeName); //加入到注册表
end;
finally
FreeAndNil(Reg);
end;
end;