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

Почитайте!

Нас читают

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

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory

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

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

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

Скачать программу Установка и удаление программi (исходники на Delphi + exe)

    В Панели управления Windows находится апплет "Установка и удаление программ". Название говорит само за себя: с помощью этого апплета мы удаляем и устанавливаем программы. Давайте посмотрим, как он работает. При загрузке апплет читает все ключи из раздела реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall (именно в этот раздел прописываются сведения об разинсталлировании программ). Из каждого ключа читается параметр DisplayName (для системных приложений – QuietDisplayName) и отображается его значение. Если пользователь нажал "Добавить/удалить...", то из параметра UninstallString считывается и выполняется командная строка.

     А теперь реализуем нечто подобное в Delphi, но с некоторыми отличиями: добавим возможность удаления сведений о программе из реестра (если она была удалена "вручную") и удаления компонентов Windows (в "Удаление и установка программ" для этого нужно перейти на закладку "Установка Windows").

    Создайте новый проект и разместите на форме три кнопки (TButton) и ListBox: TListBox как показано на рисунке 1:

Установка и удаление программ (Delphi)

    В разделе Var несколько глобальных переменных:

var
  Reg: TRegistry; //для работы с реестром
  PathList: TStrings; //командные строки
  DirList: TStrings; //"отфильтрованные" ключи реестра

Для события формы OnShow запишите процедуру:
procedure TForm1.FormShow(Sender: TObject);
var
  i: Integer;
  //список ключей раздела /Uninstall
  StrList: TStrings;
  a, b: String;
begin
  //создаем объекты для хранения строк
  StrList := TStringList.Create;
  //очищаем ListBox
  ListBox1.Clear;
  //создаем объект для работы с реестром
  reg := TRegistry.Create;
  //будем работать в разделе реестра HKEY_LOCAL_MACHINE
  reg.RootKey := Windows.HKEY_LOCAL_MACHINE;
  //открываем нужный ключ реестра
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Uninstall', False);
  //получаем все подразделы этого ключа
  reg.GetKeyNames(StrList); 

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

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

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

  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 пишет:

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

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

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