Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 4]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1271
Благодарности: 1029


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 22-05-2012
Описание: Закрыто
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]


Продолжение обсуждения
Скрипты Inno Setup. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

Новый участник


Сообщения: 49
Благодарности: 0

Профиль | Отправить PM | Цитировать


1 *.exe файл авторана на первом диске, на остальных дисках, другие файлы. Соберу всё и запишу на 4 DVD5 диска. Сую первый диск, запускается авторан, жму на кнопу, требует диск 2. сую диск 2, жму на кнопку, установка начинается. авторан запускается с 1 диска.

Отправлено: 01:01, 25-03-2012 | #1311



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


Цитата rasim933:
другие файлы »
а именно?
Цитата rasim933:
требует диск 2. сую диск 2, жму на кнопку »
Скажи сколько установщиков у тебя?
Если один, то запрос дика это работа инно и авторан тут никаким боком
вывод
если инсталяторов много, то авторан с кучей кнопок это сложно (для меня), тк игры на разных дисках.
Если установщик один, а в нём много игр, то опять же аторан нужен, но не такой, тк в конечном итоге выбор игры осуществляется в самом инсталлере а не через авторан

Последний раз редактировалось Johny777, 25-03-2012 в 01:40.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:19, 25-03-2012 | #1312


Новый участник


Сообщения: 49
Благодарности: 0

Профиль | Отправить PM | Цитировать


Описать про другие файлы несмогу. Вот картинки -

1 картинка со всеми файлами - ,
2 картинка 1 папки -
3 картинка 2 папки - .

У меня 10 игр, у каждой игры есть свой екзешник (*.exe).
При нажатии одной кнопки в антолгии, запускается экзешник (*.exe) одной игры.

У меня такая фигня -

Последний раз редактировалось rasim933, 25-03-2012 в 01:58.


Отправлено: 01:47, 25-03-2012 | #1313


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


rasim933,
ну теперь понятно
завтра попробую сделать

Отправлено: 01:59, 25-03-2012 | #1314


Новый участник


Сообщения: 49
Благодарности: 0

Профиль | Отправить PM | Цитировать


УРРААААААРАРА!!!! Спасибо)))))) Наконец-то я смог нормально обьяснит ь)))) Буду ждать)))

Отправлено: 02:00, 25-03-2012 | #1315


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


rasim933,
вот
http://rghost.ru/37205735
____________________________функционал:
я не знаю где и как ты раскидаешь игры, но это не важно.
на авторане 10 кнопок + кнопка "выход"
каждая их 10 запускает свой инсталлер из внешней папки
если какого-то инталлера нет, то кнопка отвечающая за его запуск не активна
____________________________внешне:
1. добавил скин
2. добавил фон
3. анимированный курсор на кнопках

PS: всё что тебе надо настроить это строки для каждой игры.
например:

#define Button_1 "Spider-Man (PC)"
#define Path_1 "{src}\1 Spider-Man - 1[PC]\setup.exe"
,
где "Spider-Man (PC)" - название кнопки и "{src}\1 Spider-Man - 1[PC]\setup.exe" - это путь к инсталлеру той самой игры относительно расположения авторана
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:23, 25-03-2012 | #1316


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Johny777, я тоже изначально понял так, что коллега rasim933 пересобрал каждую игру под InnoSetup и задача стоит в том, чтобы: а) сделать из кучи отдельных инсталляций InnoSetup одну единую (например, указав каждую игру отдельной задачей в инсталляции) и б) создать и прилепить к диску Autorun, который будет рисовать красивые картинки и запускать инсталляцию с заданными параметрами в зависимости от выбранных игр. Как оказалось, я ошибался в исходных данных.
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:59, 25-03-2012 | #1317


Новый участник


Сообщения: 49
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ок. ЩЯс проверю.

Johny777, Гениально!!

Боже! Теперь прога требует ISSP. Ааааа. Теперь искать надо.

Последний раз редактировалось rasim933, 25-03-2012 в 05:28.


Отправлено: 05:20, 25-03-2012 | #1318


Аватара для Gnom_aka_Lexander

Ветеран


Сообщения: 978
Благодарности: 564

Профиль | Сайт | Отправить PM | Цитировать


Цитата rasim933:
Если можено, то пришли пожалста сюда коды кнопок. »
читать дальше »
Код: Выделить весь код
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);// Встроенная процедура
begin
  Confirm := False; // убираем окно потверждения нажатия на кнопку отмены
  Cancel := True;   // Разрешаем выход
end;

procedure NewButtonClick(Sender: TObject); // Обработчик кнопок.
begin
  case TNewButton(Sender).Tag of // Узнаем, какая кнопка нажата, по ее тегу
    0: MsgBox('Вы нажали кнопку 1',mbInformation,MB_OK);
    1: MsgBox('Вы нажали кнопку 2',mbInformation,MB_OK);
    2: MsgBox('Вы нажали кнопку 3',mbInformation,MB_OK);
    3: MsgBox('Вы нажали кнопку 4',mbInformation,MB_OK);
    4: MsgBox('Вы нажали кнопку 5',mbInformation,MB_OK);
    5: MsgBox('Вы нажали кнопку 6',mbInformation,MB_OK);
    6: MsgBox('Вы нажали кнопку 7',mbInformation,MB_OK);
    7: WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
  end;
end;

procedure InitializeWizard();
Var
  i:Integer; // локальная переменная, с ее помощью запустим цикл
begin
  with WizardForm do // Делаем сразу общее обращение (минимальноя оптимизация, но торморза из мелочей собираются)
  begin
    AutoScroll := False;
    ClientHeight := ScaleY(260); // размер в высоту
    ClientWidth := ScaleX(190); // размер в ширину

    OuterNotebook.Hide; //Скрываем основной слой, на котором лежат почти все элементы
    Bevel.Hide;   // Скрываем полоску внизу инсталла, чтоб не маячила
    NextButton.Hide;  // Скрываем кнопку далее, чтоб нельзя было добраться до нее табом
    
    for i:=0 to 7 do // Запускаем цикл от 0 до 7, то-есть то, что внутри цикла, будет сделано 8 раз
    begin
      with TNewButton.Create(WizardForm) do // Собственно создаем кнопку
      begin
        Parent := WizardForm;  // указываем где ей лежать, в данном случае - окно инсталлятора Inno
        SetBounds(ScaleX(10),ScaleY(10+i*30),ScaleX(170),ScaleY(25)); // Задаем координаты и размеры 10+i*30 - тут простая математика 10 от верха будет первая кнопка, остальные лягут с интервалом в 30, в зависимости от того, чему равна локольная переменная I в данный момент
          case i of // тут задаем текст кнопки, в зависимости от того, какая из них создается в данный момент
            0: Caption := 'Кнопка 1';
            1: Caption := 'Кнопка 2';
            2: Caption := 'Кнопка 3';
            3: Caption := 'Кнопка 4';
            4: Caption := 'Кнопка 5';
            5: Caption := 'Кнопка 6';
            6: Caption := 'Кнопка 7';
            7: Caption := 'Выход';
          end;
        OnClick := @NewButtonClick; // Адрес обработчика нажатия на кнопку.
        Tag := i; // очень важно не забыть указать тег, поскольку создаем объект неименованый. Тег будет i.
      end;
    end;
  end;
end;
Вот, вроде достаточно подробно описал.

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:28, 25-03-2012 | #1319


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


Лександер,
спасибо!
возьму твой пример
мне как раз на одной из страниц много кнопок надо, а код у тебя короткий
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Теперь у меня вопрос
допустим у меня свой кастомный(!) чекбокс для установки директикса и появляется он если снаружи есть директ икс
под ним идёт такой же, но только для визуала
ниже идут чекбоксы с самоизвлекающимися рахивами, собержащими в себе обнновления и появление их опять же зависит от двух факторов: 1 отмечен нужный компонент, 2 есть ли снаружи архив.

все эти чекбоксы очень нестабильны в своём появлении и в конечном итоге если какого то нет, то на форме они будут создаваться через однин или через 2
вопрос
как сделать добавление (какие добавятся в зависимости от...) ровно в столбик с расстоянием скажем в 10 пикселем между друг другом по вертикали
вот как я сделал пока что только с одним чекбоксом
читать дальше »
Код: Выделить весь код
   
    /// создание формы звдач /// часть 2 из 2 /// начало
    begin
      TForm := CreateCustomForm();
      TForm.BorderIcons := [];
      // TForm.ClientWidth := ScaleX(256);
      // TForm.ClientHeight := ScaleY(256);
      TForm.Caption := 'Tasks';
      TForm.SetBounds(WizardForm.Left-TForm.Width-8  , WizardForm.Top, ScaleX(256), ScaleY(410));
      TForm.Color := clWindow;

      OKButton := TNewButton.Create(TForm);
      OKButton.Parent := TForm;
      OKButton.Width := ScaleX(75);
      OKButton.Height := ScaleY(23);
      OKButton.Left := TForm.ClientWidth - ScaleX(75 + 6 + 75 + 10);
      OKButton.Top := TForm.ClientHeight - ScaleY(23 + 10);
      OKButton.Caption := 'OK';
      OKButton.OnClick := @FormClose;
    
      TForm.ActiveControl := OKButton;
      /// задачи на форме /// начало
      If FileExists(ExpandConstant('{src}\outer\DirectX\DXSETUP.exe')) then
        begin
        DirectX_Checkbox := TCheckBox.Create(TForm);
          with DirectX_Checkbox do
          begin
            Parent := TForm;
            Caption := 'установить DirectX';
            Left := ScaleX(8);
            Top := ScaleY(8);
            Width := ScaleX(300);
            Height := ScaleY(15);
            Checked := False;
          end;
        end;
      /// конец
      TForm.Repaint;
    end;
    /// конец

для этой формы есть кнопка
читать дальше »
Код: Выделить весь код
 
/// создание формы звдач /// часть 1 из 2 /// начало
var
  TForm: TSetupForm;
  OKButton, CancelButton: TNewButton;
  DirectX_Checkbox : TCheckBox;
  
function Run_DirectX: Boolean;
 begin
  Result:=DirectX_Checkbox.Checked;
   end;
  
procedure FormButtonClick(Sender: TObject);
begin
 TForm.Show;
end;
procedure FormClose(Sender: TObject);
begin
 TForm.Hide;
end;
/// конец

Отправлено: 11:36, 25-03-2012 | #1320



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Test ferget Тест-форум 0 24-08-2011 01:25
test ! ! Aaa ! ! Тест-форум 0 23-04-2011 11:29
test Santa aka Snt Тест-форум 0 16-04-2011 22:35
test xolod. Программное обеспечение Linux и FreeBSD 0 19-04-2009 21:03
Test memory KEugeNik Хочу все знать 11 23-11-2003 23:11




 
Переход