Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2011, 17:40   #1
asp1k
Пользователь
 
Аватар для asp1k
 
Регистрация: 30.08.2010
Сообщений: 22
Восклицание Список автозагрузки в delphi

Как можно получить список авто загружаемых программ
HKEY_CURRENT_USER\Software\Microsof t\Windows\CurrentVersion\Run
Пробовал...получалось только получать список под папок...
Кто может подсказать как получить именно значения и записать их в листбокс..
Код:
procedure TForm1.Button1Click(Sender: TObject);
 var
  MyKey	: HKey;	{ Handle для работы с разделом }
  Buffer	: array[0..1000] of char; { Буфер }
  Err, { Код ошибки }
 index	: longint; { Индекс подраздела }
 begin
  Err:=RegOpenKey(HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\',MyKey); { Открыли раздел }
  if Err<> ERROR_SUCCESS then 
   begin
     MessageDlg('Нет такого раздела !!',mtError,[mbOk],0);
     exit;
   end;
  index:=0;
  {Определили имя первого подраздела }
  Err:=RegEnumKey(MyKey,index,Buffer,Sizeof(Buffer)); 
  while err=ERROR_SUCCESS do { Цикл, пока есть подразделы }
   begin
     memo1.lines.add(StrPas(Buffer)); { Добавим имя подраздела в список }
     inc(index); { Увеличим номер подраздела }
     Err:=RegEnumKey(MyKey,index,Buffer,Sizeof(Buffer)); { Запрос }
   end;
  RegCloseKey(MyKey); { Закрыли подраздел }
 end;
Человеческое звено - самый слабый фактов в защите системы.
Кевин Митник©
asp1k вне форума Ответить с цитированием
Старый 27.03.2011, 18:02   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  reg: TRegistry;
  ts: TStringList;
begin
  //Обьекты реестра и списка
  Reg := TRegistry.Create;
  ts := TStringList.Create;
  //ветвь которую смотрим
  reg.RootKey := HKEY_CURRENT_USER;
  try
    //читаем ключ
    if Reg.OpenKeyReadOnly('Software\Microsoft\Windows\CurrentVersion\Run\') then
    begin
      //получаем список переменных содержщихся в ветви
      reg.GetValueNames(ts);
      for i := 0 to ts.Count - 1 do
      begin
        //если переменная существует
        if Reg.ValueExists(ts.Strings[i]) then
        begin
          //грузим её значение
          ListBox1.Items.Add(reg.ReadString(ts.Strings[i]));
        end;
      end;
    end;
  finally
    //отваливаем
    reg.Free;
    ts.Free;
  end;
end;
в обычном делфи это так=)

А на WinAPI'ях как-то по другому. Думаю Открыть класс TRegistry не помошает. Там сразу всё получишь.

P.S. ты получаешь список под-папок потому что:
Код:
  Err:=RegOpenKey(HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Run\',MyKey); { Открыли раздел }
Что-то забыл=)

и в твоём случае Values для CurrentVersion каталога, являются подкаталоги.


Чуть чуть подправил..

Последний раз редактировалось Человек_Борща; 27.03.2011 в 18:12.
Человек_Борща вне форума Ответить с цитированием
Старый 27.03.2011, 18:10   #3
asp1k
Пользователь
 
Аватар для asp1k
 
Регистрация: 30.08.2010
Сообщений: 22
По умолчанию

Спасибо) Работает!
Человеческое звено - самый слабый фактов в защите системы.
Кевин Митник©
asp1k вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блокировка автозагрузки. SanekIrk Общие вопросы Delphi 4 30.09.2009 11:46
после автозагрузки программа не работает Kos123 Свободное общение 3 29.09.2009 13:52
Методы автозагрузки Лубышев Операционные системы общие вопросы 12 01.07.2008 20:53
Получить список автозагрузки, из меню ПУСК Alter Общие вопросы Delphi 5 03.05.2008 17:45
Реестр.Удаление из автозагрузки.Копирование Marsik Общие вопросы Delphi 11 07.12.2007 18:02