07.11.2008, 10:16
|
|
Illuminati
|
|
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
|
|
Предлагаю 2 варианта:
Через Системный реестр:
Код:
procedure SetAutoRun(StrName: ShortString; SetAuto: boolean);
var
reg: TRegistry;
begin
Reg := nil;
try
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.LazyWrite := false;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',false);
if SetAuto then reg.WriteString(StrName, Application.ExeName)
else reg.DeleteValue(StrName);
reg.CloseKey;
reg.free;
except
if Assigned(Reg) then Reg.Free;
end;
end;
SetAutoRun('My Application',true); //добавляем в Автозагрузку
SetAutoRun('My Application',false); //удаляем из Автозагрузки
Через Win.Ini :
Код:
procedure SetAutoRunWinIni(SetAuto:boolean);
var WinINI:TIniFile;
Warn:string;// флаг контроля, чтобы не запускалось много раз
begin
WinINI:=TIniFile.Create('Win.ini');
if SetAuto then
begin
WinINI.ReadString('windows','run',Warn);
if Warn<>Application.ExeName then
WinINI.WriteString('windows', 'run',Application.ExeName);
end
else
WinINI.Delete('windows', 'run',Application.ExeName);
WinINI.Free;
end;
SetAutoRunWinIni(True); //добавляем в Автозагрузку
SetAutoRunWinIni(False); //удаляем из Автозагрузки
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
|