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


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

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



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


Выразить свое отношение к модераторам раздела можно здесь: Profi, Fester
Модераторы: Fester
  
> Настройка компонент инсаляции , Inno Setup
    Первый раз делаю инсталяторы, так что извеняйте за глупые вопросы.

    Инсталятор (программа Setup.exe) должен:
    1. Иметь возможность установки сторонних драйверов (BDE, HASP и т.д.)
    2. Вводить начальные установки (параметры в INI/Registry)
    3. Создовать DSN для доступа к БД (использую ODBC).
    4. Ну и копировать файлы

    Скачал Inno setup - очень понравился.

    Так вот.
    Пока сделал только скрипты для установки всего в отдельности и формы ввода.

    Основной вопрос заключается в том, как в завизимости от данных скрипта выполнить ту или иную часть секций Files, Registry и Run.
    Мне нужно что-то типа выборочной устоновки с возможностью создания собственных форм для кажного компонента в отдельности.
    Например выбрали что нужно ставить клиента базы данных. Для установки нужно выбрать каталог куда его ставить.
    Для DSN - Нужно выбрать либо существующий либо вывести форму где надо заполнить параметры для создания.

    Вроде нужно делать через TASKS/COMPONENTS, но как они работают я так и не понял.
      Первым делам поставь ISTool это облегчит работу с реестром и ini, по созданию дополнительных форм все хорошо расписано в справке и вот здесь есть пример. Про BDE - тут. Это - в общем. Конкретно - спрашивай!
        можешь ещё воспользоваться ScriptMaker - очень удобная штука, делается всё визуально...
          Спасибо, но все скрипты в отдельности я уже сделал, и даже разобрался как работать с формами.
          Вопрос в следующем.
          Допустим у меня есть форма где пользователь выбирает создать DSN (для этого в реестор записываються несколько ключей(скрипт готов)) либо использовать уже существующий(для этого он выбирает нужный из ComboBox(тоже работает)).
          В общем нужно что-то типа.
          ExpandedWrap disabled
            [Registry]
            if(Создать DSN)then begin
              записать ключи в реестор
            end

          При этом при деинсталяции нужно спросить у пользователя удалять или нет используемый DSN.
          Понятно что это можно все сделать скриптом, но тогда нужно будет самому следить за деинсталяцией.

          Добавлено
          Извените.Огромное спасибо.
          Ответил до прочтения всех ссылок.
          Параметр Check то что нужно.
          Странно что его нет в справке по секциям, а только отдельно. :o
          Ну да ладно. Пошел дальше работать. Если будут вопросы обращусь еще.

          Удачи!

          -----
          Я что нибудь такое напишу,
          Что будет всем приятно-непонятно
            Цитата moteus @
            [Registry]
            if(Создать DSN)then begin
            записать ключи в реестор
            end

            такую проверку всё равно придётся через код делать....
              Цитата dron-s @
              такую проверку всё равно придётся через код делать....

              Оно и понятно.И даже уже сделал.
              Вот остался вопрос.
              Какова идеология использования Tasks и Components.
              Я задаю несколько компонентов и далее проверяю IsSelectComponent в методе Skip форм настроек компонент.
              А вот зачем нужны Tasks не понятно.

              -----
              Я что нибудь такое напишу,
              Что будет всем приятно-непонятно
                А что такое DSN?
                  Цитата moteus @
                  IsSelectComponent в методе Skip форм настроек компонент

                  зачем чего то проверять? какие компоненты юзер выбрал, то и установится.

                  Цитата moteus @
                  [Registry]
                  if(Создать DSN)then begin
                  записать ключи в реестор
                  end

                  ну? У тя дсн к какому компоннету относится? Вот и помечай эту запись в реестре - нужным компоннетом.
                  хинт: из демок этого не видно, но пренадлежность заданному компонентом можно указывать не только файлам но и некоторым другим секциям скрипта. В частности - веткам реестра.
                  то есть что то типа:

                  ExpandedWrap disabled
                    [Registry]
                    Root: HKCU; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty; Components: ComponentContainsDsn


                  Цитата moteus @
                  А вот зачем нужны Tasks не понятно.

                  это список чекбоксов, которые показываются в конце инсталяции. Просейший пример: предложение запустить установленную программу.
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0279 ]   [ 15 queries used ]   [ Generated: 27.04.24, 19:45 GMT ]