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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 06-06-2020
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • RegExporter - Бесплатная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.3.0 [17.01.2015] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z
Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z
Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:09, 04-04-2018

 

Аватара для OldGamer

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


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

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


Dodakaedr, огромное Вам Спасибо!
Этот код рабочий! Возможно кому-то это также будет полезно ))
+ 1500 лайков

Последний раз редактировалось OldGamer, 12-01-2025 в 10:39.


Отправлено: 17:53, 11-01-2025 | #1121



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

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


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


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

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


Здравствуйте уважаемые Форумчане!

может кто подскажет как сделать чтобы курсор не исчезал, когда вводишь текст в поле Edit?

Отправлено: 10:31, 16-04-2025 | #1122


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


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

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


Такой вопрос. Есть Ехешник сделанный с помощью ПО GameScript Generator и скриптов Инно.
Можно ли этот Ехе как-то открыть и посмотреть. Естно в обучающих моментах для общего ознакомления \ обучения?

InnoExtractor 2025 10.3.0.137 Ultra пробовал, не открывает.

Вот сам ехе

Отправлено: 14:25, 19-06-2025 | #1123


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

Ветеран


Contributor


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

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


Цитата Eugene_Пилигрим@vk:
Можно ли этот Ехе как-то открыть и посмотреть. »
Eugene_Пилигрим@vk, внутри браузер Yandex на 200Mb, 7zip консольный с плагинами для Far, какая-то unpacki.dll и непонятный setup.exe. В мусор.

Отправлено: 20:14, 23-06-2025 | #1124


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


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

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


может кто подскажет как замедлить (WizardForm.ProgressGauge), чтобы (WizardForm.ProgressGauge) не мелькал (при маленьком объеме .ехе), а работал как верхний - в зависимости от выбраных значений, заполнялся медленно?
Код: Выделить весь код
[Setup]
AppName=ProgressBar
AppVerName=ProgressBar
OutputBaseFilename=ProgressBar
DefaultDirName=ProgressBar
OutputDir=userdocs:..\desktop
Uninstallable=no

[Files]
Source: "compiler:Examples\MyProg.exe"; DestDir: "{app}"
Source: "compiler:Examples\MyProg-x64.exe"; DestDir: "{app}";

[ Code]
procedure InitializeWizard;
begin
      WizardForm.ProgressGauge.Parent:=WizardForm;
      WizardForm.ProgressGauge.SetBounds(ScaleX(-1), ScaleY(290), ScaleX(500), ScaleY(30));
      //WizardForm.ProgressGauge.Position:=10;
end;

var 
  ProgressPage: TOutputProgressWizardPage;
  I, Step, Wait: Integer;
  
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall  then
  begin
    Wait:=2000;
    Step:=5; 
    ProgressPage:=CreateOutputProgressPage(WizardForm.PageNameLabel.Caption, WizardForm.PageDescriptionLabel.Caption);
    ProgressPage.SetProgress(0, Wait);
    ProgressPage.Show;
    try

      for I := 0 to Wait div Step do
      begin

        ProgressPage.SetProgress(I * Step, Wait);
        Sleep(Step);
      end;
    finally
      ProgressPage.Hide;
      ProgressPage.Free;
    end;
  end;
end;

Отправлено: 05:33, 30-06-2025 | #1125


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


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

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


вот рабочий пример
Код: Выделить весь код
[Setup]
AppName=ProgressBar
AppVerName=ProgressBar
OutputBaseFilename=ProgressBar
DefaultDirName=ProgressBar
OutputDir=userdocs:..\desktop
Uninstallable=no

[ Code]
function GetWindowLong(Wnd: HWnd; Index: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall';
function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
function GetTickCount: DWord; external 'GetTickCount@kernel32 stdcall';
function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): LongWord; external 'SetTimer@User32.dll stdcall';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external 'KillTimer@User32.dll stdcall';

var
  ProgressBar: TNewProgressBar;
  Timer: LongWord;
  Done: Boolean;
  InitialTime: DWord;

procedure Install;
var
  ErrorCode: Integer;
begin
  if ShellExec('Open', 'Timeout.exe', '/T ' + IntToStr(10000 div 1000), '', SW_HIDE, ewWaitUntilTerminated, ErrorCode) then
  begin
    Done:=True;
  end;
end;

procedure UpdateProgressBar(HandleW, msg, idEvent, TimeSys: LongWord);
begin
  if Done then
  begin
    KillTimer(0, Timer);
    ProgressBar.Position:=ProgressBar.Max;
  end
    else
  begin
    ProgressBar.Position:=GetTickCount - InitialTime;
  end;
end;

procedure InitializeWizard;
begin
    WizardForm.OuterNotebook.SetBounds(ScaleX(0), ScaleY(0), ScaleX(0), ScaleY(0));

      ProgressBar:=TNewProgressBar.Create(WizardForm);
      ProgressBar.Parent:=WizardForm;
      ProgressBar.SetBounds(ScaleX(-1), ScaleY(250), ScaleX(500), ScaleY(30));
      ProgressBar.Max:=10000;
      
    SetWindowLong(ProgressBar.Handle, -20, GetWindowLong(ProgressBar.Handle, -20) or $2000000);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID=wpInstalling then
  begin
    Timer:=SetTimer(0, 0, 50, CreateCallback(@UpdateProgressBar));
    InitialTime:=GetTickCount;
    Install;
  end
end;
только он вешает систему (перетащить форму невозможно). может есть у кого другой вариант замедления прогресс бара - как в случае выше вместо (ProgressPage) применить (I, Step, Wait) к TNewProgressBar или к WizardForm.ProgressGauge

тоесть переписать этот кусок кода
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall  then
  begin
    Wait:=2000;
    Step:=5; 
    ProgressPage:=CreateOutputProgressPage(WizardForm.PageNameLabel.Caption, WizardForm.PageDescriptionLabel.Caption);
    ProgressPage.SetProgress(0, Wait);
    ProgressPage.Show;
    try

      for I := 0 to Wait div Step do
      begin

        ProgressPage.SetProgress(I * Step, Wait);
        Sleep(Step);
      end;
    finally
      ProgressPage.Hide;
      ProgressPage.Free;
    end;
  end;
end;
под TNewProgressBar

Последний раз редактировалось Beavimo, 30-06-2025 в 18:38.


Отправлено: 18:28, 30-06-2025 | #1126



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58




 
Переход