Сделай сам на Delphi: Установка и удаление программ | Программирование на Delphi и не только

Почитайте!

Нас читают

Статьи о программировании и не только

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory

Сделай сам на Delphi: Установка и удаление программ

06.05.2008 от Иван Ширко

Страница: 1 2 3

  Application.Restore;
  //обновляем данные об установке\удалении программ
  Form1.OnShow(Self);
end;

Событие OnClick кнопки "Удалить из списка":
procedure TForm1.Button2Click(Sender: TObject);
var
  Dir: String; //имя ключа
begin
  //если в ListBox'e выбран какой-нибудь элемент, то продолжаем
  if (ListBox1.ItemIndex = -1) then
    exit;
  //получаем имя ключа, который нужно удалить
  Dir := DirList[ListBox1.ItemIndex];
  //удаляем нужный ключ
  reg := TRegistry.Create;
  reg.RootKey := Windows.HKEY_LOCAL_MACHINE;
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Uninstall', False);
  reg.DeleteKey(Dir);
  reg.Free;
  //удаляем из ListBox'a выбранный элемент
  ListBox1.Items.Delete(ListBox1.ItemIndex);
end;

Основная часть на этом завершена. Теперь осталось добавить несколько мелочей для повышения удобства при работе с программой:

  1. Выделите кнопку "Обновить" и на вкладке Events Инспектора объектов, напротив события OnShow из раскрывающегося списка выберите процедуру FormShow.

  2. Таким же образом для события OnDblClick ListBox'a выберите процедуру Button1Click. Теперь при двойном щелчке мыши по выбранной программе, для неё запустится Uninstall.

  3. Для события OnKeyPress ListBox'a запишите процедуру:
    procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    begin
      //если нажата клавиша Delete, то удаляем информацию о выбранной программе из реестра
      if (Key = VK_DELETE) then
        Button2.OnClick(self);
    end;

Действия при создании и закрытии формы:
procedure TForm1.FormCreate(Sender: TObject);
begin
  //создаем объекты для хранения строк
  DirList := TStringList.Create;
  PathList := TStringList.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  DirList.Free;
  PathList.Free;
end;

    Вот и всё. Предложения по поводу тем следующих статей этого цикла присылайте мне по E-mail.Иван Ширко
    ishyrko@gmail.com

Страница: 1 2 3

Рубрики: Delphi, Сделай сам |

Комментарии (29)

  1. Виктор пишет:

    Приятная статья, мне даже очень и очень понравилось!

  2. Алексей Родионов пишет:

    Мне это пригодится.

  3. San пишет:

    Огромное, даже непередаваемое тебе СПАСИБИЩЕ!!!! Мне это очень помогло - у меня курсач по этой теме, и мне его сегодня надо сдать! Одну скачал, а там Дэлфи ругается мол нет дополнительных пакетов(потом нашел, но скачать 140мег не успеваю!)
    Еще раз спасибо! надеюсь прокатит!!! +1000000000

  4. Иван пишет:

    >>San
    Удачной сдачи курсача)

  5. Сергей пишет:

    Получается, чтобы добавить свою прогу в Установка и удаление программ” надо прописаться в реестре?

  6. открытая база пишет:

    Да реально автору спасибо за статейку, все доступно и понятно пошел побывать :)

  7. majormo пишет:

    Статья просто супер!!! ОЧень понравилось! Полезно!

  8. Тритон пишет:

    твой блог мне полезен, практика по делфи, дуб дубом, разбираюсь сижу:(

  9. hevac пишет:

    Скачал программу, спасибки, буду юзать!

  10. lazy пишет:

    спасибо за совет!!Delphi со школы плохо идет, нознать и научиться хочу:))нашел блог твой. Спасибо:))

  11. borland пишет:

    Delphi вобще сложная вещь…ну по крайне мере мне, как начинающему:))а вообще после подумываю изучить Java…говорят ууххх:)сложная хренька:)

  12. Коля пишет:

    Надо попробовать , спасибо за программу.

  13. Andrew пишет:

    Статья хорошая и нужная, спасибо автору.

  14. Генри пишет:

    О сейчас буду пробовать.

  15. Domin пишет:

    Познавательно и интересно. Но, сложно для восприятия моими мозгами. Это мне так показалось или вам тоже? Прошу автора не обижаться.

  16. multimedia пишет:

    Спасибо за информацию, она помогла в решении очень важной для меня проблемы!!! Ура =)))

  17. Вадим пишет:

    А я вот мучаюсь с идентификацией нажатия клавиши Delete на клавиатуре… Использовал для события OnKeyPress условие if Key=#46; Key=VK_DELETE (как у вас в примере вроде) и ничего, сколько раз не нажми на эту клавишу — никакой реакции. Можете подсказать чего-нибудь?

  18. Ильназ пишет:

    Дайте ссылку на Делфи плиз очень нужна!!!!!!=)))))

  19. prays пишет:

    немного можно подправить например добавить инфу об авторе программы читать параметр в реесторе ‘Publisher’ ну и версию проги ‘DisplayVersion’

  20. crystalbit пишет:

    Вадим, с onkeypress действительно что-то не работает, зато на KeyUp например, работает на ура

  21. sharik пишет:

    В свое время зять пытался приобщить меня к дэлфи, ну мне как то не очень!

  22. C0ffe1n пишет:

    Хороший пример, очень полезный. Как говорить респект и уважуха! ;)

  23. Андрей пишет:

    А это не нада?)
    listbox1.Items:=strlist;

  24. Андрей пишет:

    емае я тупой наверно))

  25. Михаил Григорьев пишет:

    Немного добавлю..
    В раздел USES следует прописать Registry,
    т.к. без этого компилятор ругается на:
    ——–
    Reg: TRegistry; //для работы с реестром
    ——–

    Спасибо за внимание..

  26. Артем пишет:

    Спасибо, есть одна задумка, статья помогла в реализации

  27. Last_kamikadze пишет:

    Существует ли возможность выводить именно исполняемые *.exe файлы и потом например выделеные импортировать в рег файл?

  28. andrew пишет:

    киньте ссылку на исходник плиз, а то в новости не работает

  29. samsim пишет:

    Интересный способ удаления програм но для этого нужно уметь работать с реестром.

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.