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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка в ServiceApplication 
:(
    Опции темы
zezik
Дата 11.3.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 11.3.2008

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



user posted image 

user posted image
Две ошибки возникающие при попытке удаления не существующего сервиса, или установке уже установленного сервиса.


Пример возниковения ошибки повторной установки: 
Код

procedure TSetviceApplication.ServiceBeforeInstall(Sender: TService);
var j: integer;
    s: String;
begin
  RegOpenKey(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Services\TestService', key);

    if (key = ERROR_SUCCESS) then       
        begin
         .
         .
           repeat                     
              case Form2.ShowModal of
               mrYes: begin inc(j); unit2.dalee(j);  end;
               mrNo:  begin dec(j); unit2.nazad(j);  end;
               mrCancel:  begin    Form2.Free;        halt(0);    end;
              end;
           until  Form2.ModalResult = mrOk ;
         end
         end
 else

 begin
   if MessageDlg('Данная программа уже существует. Хотите ее удалить?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
      begin
         s := GetRegStringValue('SYSTEM\CurrentControlSet\Services\TestService', 'ImagePath',HKEY_LOCAL_MACHINE);
         OpenProgram(s, '/uninstall');
              halt(0);  
         end
       else
               halt(0);
 end;

halt(0) не дает отображать эти ошибки, но это не корректно и надо найти корректный способ.


И еще один вопрос не вылезая из этого же фрагмента кода, тоже про корректность.

Это фрагмент перехода по форме самопального установщика:
Код

    .
    .
    .
           repeat                     
              case Form2.ShowModal of
               mrYes: begin inc(j); unit2.dalee(j);  end;
               mrNo:  begin dec(j); unit2.nazad(j);  end;
               mrCancel:  begin    Form2.Free;       halt(0);    end;
              end;
           until  Form2.ModalResult = mrOk ;
         end
    .
    .
    .


halt(0) предназначен для выхода из формы установки сервиса по нажатию кнопки "Отмена". Но опять же это не корректно. У Application есть метод Terminate,  есть ли то же самое только для ServiceApplication?

Заранее спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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