На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ Inno Setup
Пожалуйста, выделяйте текст инсталлятора написанного на Inno Setup тегом [сode=ins] ... [/сode]. Для этого используйте кнопку [code=ins] в форме ответа или выпадающего списка, если нужно вставить код из другой программы.


Обязательно указывать:

  • Программу, используемую для создания инсталлятора.



Если в ходе решения проблемы возникли дополнительные вопросы, по возможности задаем их в той же теме.


Выразить свое отношение к модераторам раздела можно здесь: Profi, Fester
Модераторы: Fester
  
> InnoSetup и Redistributes
    Наверное, с этой задачей многие сталкиваются.
    Есть моя программа. Ей для работы нужен MSSQL. Для его установки на клиентской машине я скачал MSDE - движок MSSQL, специально предназначенный для клиентской установки. Для его установки нужно отключить пару сервисов, потом запустить setup.exe, подождать (он никаких окон не выводит), и запустить снова сервисы.
    (кстати, кто-нибудь пробовал это делать?)

    А вот как это сделать?
    Я так понимаю, нужно дождаться окончания установки. Тогда дистрибутив сервера будет уже скопирован. После этого вызвать setup.
    Но если он облажается? Я то это определю, а вот можно ли будет отменить установку???
      Может вот это чем-нибудь поможет.
        Вопрос мутировал: Как отменить установку (и соответственно откатить) из скрипта?
          Цитата Testudo @
          Вопрос мутировал: Как отменить установку (и соответственно откатить) из скрипта?

          Хм, вроде бы Inno Setup сам делает отмену установки:
          Что именно происходит, если пользователь нажмет Cancel в процессе установки?
          При нажатии Cancel инсталятор отменяет изменения, сделанные им в ходе установки, почти как деинсталятор при удалении программы. Поэтому частично установленное приложение не останется в системе пользователя.

          Но это скорее всего касаеться только скрипта вне секции Code. Что точно, так это то, что можно использовать:
          ExpandedWrap disabled
            procedure DeInitializeSetup();
            А вот если я пишу обработчик AfterInstall какого-то файла и в нем сделаю RaiseException, установка отменится?
              Цитата Testudo @
              А вот если я пишу обработчик AfterInstall какого-то файла и в нем сделаю RaiseException, установка отменится?

              Не знаю, не пробывал, но DeInitializeSetup вызываеться именно тогда, когда юзер нажал cancel!
                Цитата Profi @
                Не знаю, не пробывал
                Щас попробую...

                Добавлено
                Нет, не откатывается... Пробую DeInitializeSetup

                Добавлено
                Говорит, нет такой функции.
                В примерах нашел такую ее реализацию:
                ExpandedWrap disabled
                  procedure DeinitializeSetup();
                  var
                    FileName: String;
                    ResultCode: Integer;
                  begin
                    if FinishedInstall then begin
                      if MsgBox('DeinitializeSetup:' #13#13
                                'The [Code] scripting demo has finished. Do you want to uninstall My Program now?',
                       mbConfirmation, MB_YESNO) = idYes then begin
                        FileName := ExpandConstant('{uninstallexe}');
                        if not Exec(FileName, '', '', SW_SHOWNORMAL, ewNoWait, ResultCode) then
                          MsgBox('DeinitializeSetup:' #13#13 'Execution of ''' + FileName + ''' failed. ' +
                            SysErrorMessage(ResultCode) + '.', mbError, MB_OK);
                      end else
                        MsgBox('DeinitializeSetup:' #13#13 'Ok, bye bye.', mbInformation, MB_OK);
                    end;
                  end;
                Теперь вопрос: а как сделать, чтобы при вызове {uninstallexe} никакого окна не отображалось?

                Добавлено
                Кстати, он ее вызывает при любом исходе установки... :wall:
                Выходит, ею нельзя пользоваться для отмены. Тогда чем?
                  Придумал!!!
                  Написал
                  ExpandedWrap disabled
                    WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
                  А в обработчике при необходимости просто отключил предупреждение.
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0442 ]   [ 15 queries used ]   [ Generated: 26.04.24, 11:07 GMT ]