Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Uninstall Key 
:(
    Опции темы
Death
Дата 1.7.2002, 15:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Всем привет! Вот пытаюсь загрузить все значения ключа Uninstall в listbox1. Но что-то неполучается. Помогите!!!

Код
procedure TForm1.Button2Click(Sender: TObject);
var
s:string;
begin
listbox1.Items.Clear;
 Reg := TRegistry.Create;
  try
   Reg.RootKey := HKEY_LOCAL_MACHINE;
  if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Uninstall',True)
   then
   begin
    s:=reg.readstring('DisplayName');
    if s=listbox2.items[listbox2.itemindex] then
    reg.GetKeyNames(listbox1.Items);
   end
 finally
   Reg.CloseKey;
   Reg.Free;
   inherited;
 end;
end;

  Вверх
RA
Дата 1.7.2002, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



procedure TForm1.Button2Click(Sender: TObject);
var
s:string;
Reg:TRegistry;
begin
listbox2.Items.Clear;
Reg := TRegistry.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Uninstall',false);
  S:=reg.readstring('DisplayName');
  listbox2.items.add(s);
  Reg.CloseKey;
  Reg.Free;
  inherited;
end;
PM   Вверх
Death
Дата 1.7.2002, 16:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да нет, неработает так, ничего не происходит при нажатии на кнопку.
  Вверх
RA
Дата 1.7.2002, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Так давай разберёмся:

Папки это - Разделы
Параметры - Название Чегото
Значение -  Свойство параметра.

Ты задеёшь вопросс значения ключа Uninstall.

Если в Разделе  Uninstall нет параметра "DisplayName" то соответсвенно там нет
значения параметра "DisplayName".

Тоесть если нет указанного Параметра то и нету его значения.
============================================================

PS может ты вопрос задал не так?
PM   Вверх
Death
Дата 1.7.2002, 18:38 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Хорошо.
Как считать из реестра данные о деинсталляции, как это делает апплет "Панели управления" - "Установка и удаление программ"?
  Вверх
Death
Дата 1.7.2002, 20:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ну, вот - принимайте работу. Это я сам сотворил такое. Всё работает, вот только при удалении раздела выводится messagebox и не хочет уходить с экрана чтобы я не делал. Мужики помогите!!!

Код
//Удаление данных раздела Uninstall
procedure TForm1.DeleteUninstalKey(Execute:Boolean);
var
key, value:string;
i:integer;
begin
Reg := TRegistry.Create;
 Reg.RootKey := HKEY_LOCAL_MACHINE;
  if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Uninstall',True) then
 begin
  for i:=0 to listbox1.items.count-1 do
   if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Uninstall\'+listbox1.items[i],True) then
  begin

  if Execute then
   begin
   key:=listbox1.items[listbox1.itemindex];
    if key=listbox1.items[listbox1.itemindex] then
     //Вот он этот злостный messagebox
     if application.messagebox(pchar('Вы уверены, что хотите удалить "' + key + '" ?'+#13#13+
      'Это удалит данный раздел реестра !'),
      'Заголовок окна',MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON2 or MB_TASKMODAL) = ID_YES then
     if not reg.DeleteKey('\Software\Microsoft\Windows\CurrentVersion\Uninstall\'+listbox1.items[listbox1.itemindex]) then
     showmessage('Невозможно удалить раздел !');
   end
   else
   begin
   value:=reg.readstring('DisplayName');
    if value=listbox2.items[listbox2.itemindex] then
     if application.messagebox(pchar('Вы уверены, что хотите удалить "' + value + '" ?'+#13#13+
      'Это удалит запись из реестра, но не саму программу !'),
      'Заголовок окна',MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON2 or MB_TASKMODAL) = ID_YES then
     if not reg.DeleteKey('\Software\Microsoft\Windows\CurrentVersion\Uninstall\'+listbox1.items[i]) then
    showmessage('Невозможно удалить запись!');
   end;

  end;
    Reg.CloseKey;
 end;
    Reg.CloseKey;
   Reg.Free;
  inherited;
ReadUninstalKey;
end;

  Вверх
RA
Дата 1.7.2002, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



На не парься http://mixan.narod.ru/duks.zip
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0813 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.