Сделай сам: управление автозагрузкой
09.01.2008 от Иван ШиркоЗатем запишите процедуру, которая будет из строки извлекать пути к файлам, разделённые пробелами, и помещает их в список. Позже эта процедура будет востребована.
procedure ExtractFilenames(s: String;FileNames: String;qw: TStrings);
begin
{если найдены два пробела, то удаляем один из них}
i := pos(' ', filenames);
while (i <> 0) do
begin
delete(filenames, i, 1);
i := pos(' ', filenames);
end;
i := pos(' ', filenames);
{добавляем в список qw все файлы из строки}
while (i<>0) do
begin
qw.Add(copy(Filenames, 1, i-1));
delete(filenames, 1, i);
i := pos(' ', filenames);
end;
qw.Add(filenames);
end;
Для обработки события OnShow компонента TabSheet1 (мы её назвали "Run") запишите следующую процедуру:
procedure TForm1.TabSheet1Show(Sender: TObject);
begin
//очищаем ListView1
ListView1.Items.Clear;
//создаём объект для работы с реестром
reg := TRegistry.Create;
//будем работать в ключе хранящемся в переменной Key
reg.RootKey := Key;
{открываем ключ, в котором содержатся имена файлов загружаемых при каждом старте Windows и записываем эти в ListBox1}
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False);
reg.GetValueNames(value);
for i := 0 to value.Count-1 do
with ListView1 do
begin
ListItem := Items.Add;
ListItem.Caption :=Value.Strings[i];
ListItem.SubItems.Add(reg.ReadString(Value.Strings[i]));
end;
//освобождаем память, выделенную под объект reg
reg.Free;
end;
Процедура события OnShow компонента TabSheet2:
Всё то же самое, только открываем другой ключ реестра:
...
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce', False);
...
Обработка события OnShow компонента TabSheet3:
То же, что и в предыдущих процедурах, но открываем ключ реестра, в котором хранятся имена сервисов, которые запускаются вместе с Windows:
...
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\RunServices', False);
...
Обработка события OnShow компонента TabSheet4:
Открываем ключ реестра, в котором хранятся имена сервисов, которые запустятся только один раз при ближайшей перезагрузки Windows:
...
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\RunServicesOnce', False);
...
Процедура обработки события OnShow компонента TabSheet5:
procedure TForm1.TabSheet5Show(Sender: TObject);
begin
ListView1.Items.Clear;
load.Clear;
run.Clear;
//получаем доступ к файлу Win.ini
AppIni := TIniFile.Create('Win.INI');
//читаем пути к файлам из строки Load
path := appini.ReadString('windows', 'Load', '');
//удаляем все ведущие пробелы
Рубрики: Delphi, Сделай сам |