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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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. Помощь и советы [часть 4]

Отправлено: 03:49, 21-05-2012

 

Аватара для nik1967

Старожил


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

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


Johny777, вниз падает (по другому х.з. как сказать) а вверх плавно поднимается. И да, компилишь на Ansi? На Unicode ругнулось несколько раз - точку с запятой забыл поставить в нескольких местах.

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Последний раз редактировалось nik1967, 11-10-2012 в 08:45.

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

Отправлено: 00:35, 11-10-2012 | #1111



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

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


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

Ветеран


Contributor


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

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


Цитата Johny777:
поздравьте меня! Тк сделал свой вариант "выкатов и закатов" »
Johny777, респект, только SleepEx не по назначению используешь, достаточно простого Sleep.
Цитата Johny777:
и где мне на будущее смотреть эти значения »
Johny777, в MSDN нередко при описании какой-либо функции указывают значения используемых констант. Если нет, то в гугел я даю запрос типа const QS_KEY =, первые же результаты дают искомое, даже не нужно по ссылкам переходить.
Цитата Johny777:
но есть один недостаток - после завершения таймера не выгружается оперативка
те после каждого выката прибавляется по 4кб при закате по 4 = 8кб на один закат/выкат »
Это не утечка, борландовский менеджер памяти для своих нужд выделяет квант памяти, равный размеру страницы памяти.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:49, 11-10-2012 | #1112


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата El Sanchez:
в MSDN нередко при описании какой-либо функции »
Цитата El Sanchez:
в гугел я даю запрос типа const QS_KEY »
самый быстрый вариант - в модулях дельфи - я просто ввожу константу и потом на ней правой кнопкой - "Find declaration". все что потом нужно - собрать остальные значения, если она составная.

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

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

Отправлено: 10:55, 11-10-2012 | #1113


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


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

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


Приветствую, подскажите пожалуйста, существует ли возможность запуска программы из папки {app} (программы которая туда уже распаковалась), а после её завершения продолжалась распаковка других файлов в эту папку.

Отправлено: 17:11, 11-10-2012 | #1114


Ветеран


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

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


Цитата El Sanchez:
Это не утечка, борландовский менеджер памяти для своих нужд выделяет квант памяти, равный размеру страницы памяти. »
Это именно утечка, вот только не понятно почему...
Попробуйте написать используя TTimer, такого не будет, хотя при вызове TTimer.Enabled := True, происходит вызов функции SetTimer, а при TTimer.Enabled := False, происходит вызов функции KillTimer и при этом такой утечки не происходит.

Цитата Gnom_aka_Lexander:
и потом на ней правой кнопкой - "Find declaration" »
Так же можно нажать Ctrl+клик мышкой

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

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

Отправлено: 17:42, 11-10-2012 | #1115


Аватара для Gnom_aka_Lexander

Ветеран


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

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


JHeavy, посмотри в справке BeforeInstall и AflerInstall, с их помощью можно до или после распаковки нужного файла вызвать встроенную функцию Exec, и поскольку она подвешивает инсталл, то при использвоании флага ewNoWait есть большие шансы, что распаковка продолжится только после отработки Exec.

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


Отправлено: 18:05, 11-10-2012 | #1116


Старожил


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

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


Добрый вечер всем. А не подскажите как убрать кнопку "О программе" и иконку в левом верхнем углу? Заранее благодарен.

-------
Стремись не к тому, чтобы добиться успеха, а к тому, чтобы твоя жизнь имела смысл.(Альберт Эйнштейн)


Отправлено: 21:36, 11-10-2012 | #1117


Аватара для Johny777

Ветеран


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

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


Цитата El Sanchez:
SleepEx не по назначению используешь, достаточно простого Sleep. »
уже поправил.
Теперь это функция: function Roll(Ctrl: TControl; RollDelay: Byte; InputRollInfo: DWORD): DWORD;
упростил вызов
в выкатах справа и снизу иногда нужно учитывать ширину границы формы
например $6: ... until (RollInfo <> $6) or (Ctrl.Top = Ctrl.Parent.Height-Ctrl.Height-ScaleY(28));
читать дальше »
Код: Выделить весь код
[Setup]
AppName=The_Best_RollDemo_Ever
AppVerName=The_Best_RollDemo_Ever v 777
DefaultDirName={pf}\The_Best_RollDemo_Ever
DefaultGroupName=The_Best_RollDemo_Ever
OutputDir=.
Uninstallable=no

[code]
var
  PanelUp, PanelDown, PanelLeft, PanelRight: TPanel;
  RollInfo: DWORD;

// function SleepEx(dwMilliseconds: DWORD; bAlertable: BOOL): DWORD; external 'SleepEx@Kernel32.dll stdcall';

//  сдвиг статичный в один пиксель (не менять)
//  плюсы такого сдвига:
//  1. плавность
//  2. точность выполнения (что будет если панель высотой 70 двигать по 3 пикселя до -70)
//  3. настройка скорости задержкой (диапазон от 0 до 100 = 101 скоростей)

///////// Roll(переменная_контрола(например панель или скроллбокс или мемо), задержка(максимум 100 т.к. дальше будет некрасиво), индикатор выката)
function Roll(Ctrl: TControl; RollDelay: Byte; InputRollInfo: DWORD): DWORD;
begin
  Result := InputRollInfo;
  case Result of
    $0: repeat
          Ctrl.Top := Ctrl.Top + ScaleY(1);      /// сверху вниз и назад
          Sleep(RollDelay);
          Application.ProcessMessages;
        until (RollInfo <> $0) or (Ctrl.Top = 0);
    $1: repeat  /// снизу вверх
          Ctrl.Top := Ctrl.Top - ScaleY(1);
          Sleep(RollDelay);
          Application.ProcessMessages;
        until (RollInfo <> $1) or (Ctrl.Top = - Ctrl.Height);
        //////////////////////////////////////////////////////////////////
    $2: repeat
          Ctrl.Left := Ctrl.Left + ScaleX(1);    /// слева направо и назад
          Sleep(RollDelay);
          Application.ProcessMessages;
        until (RollInfo <> $2) or (Ctrl.Left = 0);
    $3: repeat
          Ctrl.Left := Ctrl.Left - ScaleX(1);
          Sleep(RollDelay);
          Application.ProcessMessages;
        until (RollInfo <> $3) or (Ctrl.Left = - Ctrl.Width);
        ///////////////////////////////////////////////////////////////////
    $4: repeat
          Ctrl.Left := Ctrl.Left - ScaleX(1);   /// справа налево  и назад
          Sleep(RollDelay);
          Application.ProcessMessages;
        until (RollInfo <> $4) or (Ctrl.Left = Ctrl.Parent.Width-Ctrl.Width);
    $5: repeat
          Ctrl.Left := Ctrl.Left + ScaleX(1);
          Sleep(RollDelay);
          Application.ProcessMessages;
        until (RollInfo <> $5) or (Ctrl.Left = Ctrl.Parent.Width);
        ////////////////////////////////////////////////////////////////////
    $6: repeat
          Ctrl.Top := Ctrl.Top - ScaleY(1);    /// снизу вверх и назад
          Sleep(RollDelay);
          Application.ProcessMessages;
        until (RollInfo <> $6) or (Ctrl.Top = Ctrl.Parent.Height-Ctrl.Height);
    $7: repeat
          Ctrl.Top := Ctrl.Top + ScaleY(1);
          Sleep(RollDelay);
          Application.ProcessMessages;
        until (RollInfo <> $7) or (Ctrl.Top = Ctrl.Parent.Top + Ctrl.Height);
    end;
end;




procedure UpDown(Sender: TObject);
begin
  case TButton(Sender).Caption of
   'Roll1':
    begin
      TButton(Sender).Caption:='Roll0';

//      RollInfo := Roll(PanelDown, 2, $0); // A

      RollInfo := Roll(PanelLeft, 0, $2); // B

//      RollInfo := Roll(PanelRight, 0, $4); // C

//      RollInfo := Roll(PanelUp, 0, $6);  // D

    end;
    'Roll0':
    begin
      TButton(Sender).Caption:='Roll1';

//      RollInfo := Roll(PanelDown, 2, $1); // A

      RollInfo := Roll(PanelLeft, 0, $3);  // B

//      RollInfo := Roll(PanelRight, 0, $5); // C

//      RollInfo := Roll(PanelUp, 0, $7);
        //////////// d
    end;
  end;
end;





procedure InitializeWizard();
begin
  PanelUp := TPanel.Create(WizardForm);
  with PanelUp do
  begin
    Parent := WizardForm;
    SetBounds(ScaleX(0),Parent.Top + Parent.Height,ScaleX(497),ScaleY(200));
    ParentBackground := False;
    Color := clBlue;
  end;

  PanelDown := TPanel.Create(WizardForm);
  with PanelDown do
  begin
    Parent := WizardForm;
    SetBounds(ScaleX(0),ScaleY(-200),ScaleX(497),ScaleY(200));
    ParentBackground := False;
    Color := clYellow;
  end;

  PanelLeft := TPanel.Create(WizardForm);
  with PanelLeft do
  begin
    Parent := WizardForm;
    SetBounds(ScaleX(-390),ScaleY(0),ScaleX(390),ScaleY(314));
    ParentBackground := False;
    Color := clGreen;
  end;

  PanelRight := TPanel.Create(WizardForm);
  with PanelRight do
  begin
    Parent := WizardForm;
    SetBounds(Parent.Width + ScaleX(200),ScaleY(0),ScaleX(200),ScaleY(314));
    ParentBackground := False;
    Color := clRed;
  end;

  with TButton.Create(WizardForm) do
  begin
    OnClick:= @UpDown;
    SetBounds(ScaleX(40),ScaleY(327),ScaleX(75),ScaleY(25))
    Caption:='Roll1';
    Parent:= WizardForm;
  end;
end;


Цитата LinkOFF:
как убрать ... иконку в левом верхнем углу? »
кто-то уже спрашивал. Смотрел на форумах. это жуткий геморрой. как вариант используй скин и иконку однотонную по цвету скина
это не обязательно иконка экзешника инсталла
http://forum.ru-board.com/topic.cgi?...07&limit=1&m=1

Последний раз редактировалось Johny777, 11-10-2012 в 22:46.

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

Отправлено: 22:14, 11-10-2012 | #1118


Аватара для Mailchik

Пользователь


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

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


Цитата LinkOFF:
как убрать кнопку "О программе"
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Code]
procedure InitializeWizard;
 begin
  with WizardForm do begin
   Position := poScreenCenter;
  end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:26, 11-10-2012 | #1119


Старожил


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

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


Mailchik, что-то я вставить не могу. у меня InitializeWizard разделен на 4 части, создаю 5, компилирую и кнопка не уберается. не могли бы вставить? http://rghost.ru/download/40879331/3...dishonored.iss

Mailchik, уже не нужно. я вставил.

-------
Стремись не к тому, чтобы добиться успеха, а к тому, чтобы твоя жизнь имела смысл.(Альберт Эйнштейн)


Отправлено: 23:08, 11-10-2012 | #1120



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход