Листинг 7.16.
Определение режима запуска приложения
procedure TForm1.GetRunMode();
var
reg: TRegistry;
begin
reg := TRegistry.Create();
reg.RootKey := HKEY_LOCAL_MACHINE;
//Определение, как запускается программа (по наличию значений
//в соответствующих разделах)
if reg.OpenKey(\'Software\Microsoft\Windows\CurrentVersion\Run\',
False)
then
begin
if reg.ValueExists(Application.Title) then
begin
//Программа есть в разделе Run —
//запускается при каждой загрузке Windows
optAutoRun.Checked := True;
reg.CloseKey();
Exit;
end;
reg.CloseKey();
end;
if reg.OpenKey(\'Software\Microsoft\Windows\CurrentVersion\
RunOnce\', False)
then
begin
if reg.ValueExists(Application.Title) then
begin
//Программа есть в разделе RunOnce —
//запускается один раз при старте Windows
optRunOnce.Checked := True;
reg.CloseKey();
Exit;
end;
reg.CloseKey();
end;
//Автозапуск программы (рассматриваемым способом) не включен
optRunNone.Checked := True;
reg.Free();
end;
Параметры запуска изменяются (в рассматриваемом приложении) при нажатии кнопки Применить (листинг 7.17).