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

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

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

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

Ветеран


Contributor


Сообщения: 1273
Благодарности: 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] - Скачать;


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

Отправлено: 19:06, 28-03-2013

 

Ветеран


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

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


CkauNui, скрипт и сейчас работает, а то что вы принимаете за ошибку, на самом деле предупреждение компилятора что вариации для указанных стандартных контролов не используются. У вас в скрипте указанно лишь, что эти контролы скрываются, а так как существуют стандартные контролы с такими же именами, то переменные TLabel для них ведут в никуда. На работе инстала это никак не скажется, но, если это предупреждение нервирует, уберите контролы из переменных.
Есть так:
Код: Выделить весь код
WelcomeLabel1, WelcomeLabel2, FinishedLabel, FinishedHeadingLabel: TLabel;
Сделайте так:
Код: Выделить весь код
WelcomeLabel2, FinishedLabel: TLabel;

Отправлено: 14:53, 16-06-2013 | #641



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

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


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


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

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


Цитата saurn:
Вызывайте процедуру создания папок после страницы выбора папки установки(wpSelectDir) »
Спасибо за наводку, только я немного не понял, как это сделать. Не могли бы Вы показать, как организовать вызов процедуры на этом этапе? Чего-то не получается. Просто я - новичок, ещё не во всём разобрался.

Отправлено: 15:01, 16-06-2013 | #642


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


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

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


Цитата saurn:
CkauNui, скрипт и сейчас работает, а то что вы принимаете за ошибку, на самом деле предупреждение компилятора что вариации для указанных стандартных контролов не используются. У вас в скрипте указанно лишь, что эти контролы скрываются, а так как существуют стандартные контролы с такими же именами, то переменные TLabel для них ведут в никуда. На работе инстала это никак не скажется, но, если это предупреждение нервирует, уберите контролы из переменных. »
он скорее всего из за этого не принимает скин.
Скрины:
читать дальше »
то как было:

и как сейчас:

Отправлено: 15:06, 16-06-2013 | #643


Ветеран


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

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


CkauNui, лейблы к скину отношения не имеют, а так скинами не пользуюсь, подсказать по ним ничего не могу.
volga163@vk, на скрипт ваш можно глянуть?

Отправлено: 15:52, 16-06-2013 | #644


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


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

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


Цитата saurn:
volga163@vk, на скрипт ваш можно глянуть? »
Вот секция [code]
читать дальше »

[code]
Код: Выделить весь код
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';

function ShowWindow(hWnd, nCmdShow: LongWord): LongWord; external 'ShowWindow@user32.dll stdcall';

Procedure BackgroundOnActivate(Sender: TObject); Begin if WizardForm.Visible then WizardForm.Show End;
// ---------------------------
// Вставляем bass.dll и музыку
// ---------------------------

const  
  BASS_SAMPLE_LOOP = 4;
  BASS_UNICODE = $80000000;
  BASS_CONFIG_GVOL_STREAM = 5;
const
  #ifndef UNICODE
    EncodingFlag = 0;
  #else
    EncodingFlag = BASS_UNICODE;
  #endif
type
  HSTREAM = DWORD;

function BASS_Init(device: LongInt; freq, flags: DWORD; 
  win: HWND; clsid: Cardinal): BOOL;
  external 'BASS_Init@files:bass.dll stdcall';
function BASS_StreamCreateFile(mem: BOOL; f: string; offset1: DWORD; 
  offset2: DWORD; length1: DWORD; length2: DWORD; flags: DWORD): HSTREAM;
  external 'BASS_StreamCreateFile@files:bass.dll stdcall';
function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL; 
  external 'BASS_ChannelPlay@files:bass.dll stdcall';
function BASS_SetConfig(option: DWORD; value: DWORD ): BOOL;
  external 'BASS_SetConfig@files:bass.dll stdcall';
function BASS_Free: BOOL;
  external 'BASS_Free@files:bass.dll stdcall';

procedure InitializeWizard();
var
  s, Name: string;
  i : Integer;
  StreamHandle: HSTREAM;
  BackgroundImage: TBitmapImage;
  BackgroundForm: TForm;
begin
// ---------------
// Загрузка музыки
// ---------------
  ExtractTemporaryFile('hal1.mp3');
  if BASS_Init(-1, 44100, 0, 0, 0) then
  begin
    StreamHandle := BASS_StreamCreateFile(False, 
      ExpandConstant('{tmp}\hal1.mp3'), 0, 0, 0, 0, 
      EncodingFlag or BASS_SAMPLE_LOOP);
    BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, 2500);
    BASS_ChannelPlay(StreamHandle, False);
  end;
BackgroundForm:= TForm.Create(nil)
BackgroundForm.BorderStyle:= bsNone
BackgroundForm.OnActivate:= @BackgroundOnActivate;
ShowWindow(BackgroundForm.Handle, sw_ShowMaximized) // фоновое окно на полный экран
BackgroundImage:= TBitmapImage.Create(BackgroundForm)
BackgroundImage.Align:= alClient
BackgroundImage.Stretch:= True
ExtractTemporaryFile('fon.bmp')
BackgroundImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\fon.bmp'))
BackgroundImage.Parent:= BackgroundForm
  ITD_Init;
// Оглашаем создание папок Bukkit.
  CreateDir(WizardDirValue()+'\1.5.2 Bukkit\');
  CreateDir(WizardDirValue()+'\1.5.1 Bukkit\');
  CreateDir(WizardDirValue()+'\1.5.0 Bukkit\');
  CreateDir(WizardDirValue()+'\1.4.7 Bukkit\');
  CreateDir(WizardDirValue()+'\1.4.6 Bukkit\');
  CreateDir(WizardDirValue()+'\1.4.7 MCPC\');
  CreateDir(WizardDirValue()+'\1.5.1 MCPC\');
  CreateDir(WizardDirValue()+'\1.5.2 MCPC\');
// ЗАКОНЧИЛИ ОГЛАШАТЬ СОЗДАНИЕ ПАПОК
// -------------------------
// Загружаем следующие файлы
  itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/02161_1.5.2-R0.2/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.2 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.2
  itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/02099_1.5.1-R0.3/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.1 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.1
  itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01980_1.5-R0.1/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.0 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.0
  itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01845_1.4.7-R1.0/craftbukkit.jar',Wizarddirvalue()+'\1.4.7 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.4.7
  itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01800_1.4.6-R0.4/craftbukkit-dev.jar',Wizarddirvalue()+'\1.4.6 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.4.6
  itd_addfile('http://ci.md-5.net/job/MCPC-Plus-Legacy/lastSuccessfulBuild/artifact/target/mcpc-plus-legacy-1.4.7-R1.1-SNAPSHOT-f534-L67.jar',Wizarddirvalue()+'\1.4.7 MCPC\'+'craftubkkit-1.0.0-SNAPSHOT.jar'); // MCPC+ Legacy 1.4.7
  itd_addfile('http://ci.md-5.net/job/MCPC-Plus/lastSuccessfulBuild/artifact/target/mcpc-plus-151compat-1.5.2-R1.1-forge736-C549.jar',Wizarddirvalue()+'\1.5.1 MCPC\'+'craftubukkit-1.0.0-SNAPSHOT.jar'); // MCPC+ 1.5.1
  itd_addfile('http://ci.md-5.net/job/MCPC-Plus/lastSuccessfulBuild/artifact/target/mcpc-plus-1.5.2-R1.1-forge736-B549.jar',Wizarddirvalue()+'\1.5.2 MCPC\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // MCPC+ 1.5.2
// ЗАКОНЧИЛИ ЗАГРУЖАТЬ ФАЙЛЫ
// -------------------------
  itd_setoption('UI_DetailedMode', '1'); // Детализированный режим
  itd_downloadafter(wpInstalling); // Загружаем файл после установки
end;

procedure DeinitializeSetup;
begin
  BASS_Free;
end;

Отправлено: 15:56, 16-06-2013 | #645


Ветеран


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

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


volga163@vk,
Скрипт *обновлено
Код: Выделить весь код
[Code]
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';

function ShowWindow(hWnd, nCmdShow: LongWord): LongWord; external 'ShowWindow@user32.dll stdcall';

Procedure BackgroundOnActivate(Sender: TObject); Begin if WizardForm.Visible then WizardForm.Show End;
// ---------------------------
// Вставляем bass.dll и музыку
// ---------------------------

const
  BASS_SAMPLE_LOOP = 4;
  BASS_UNICODE = $80000000;
  BASS_CONFIG_GVOL_STREAM = 5;
  #ifndef UNICODE
    EncodingFlag = 0;
  #else
    EncodingFlag = BASS_UNICODE;
  #endif
type
  HSTREAM = DWORD;

function BASS_Init(device: LongInt; freq, flags: DWORD;
  win: HWND; clsid: Cardinal): BOOL;
  external 'BASS_Init@files:bass.dll stdcall';
function BASS_StreamCreateFile(mem: BOOL; f: string; offset1: DWORD;
  offset2: DWORD; length1: DWORD; length2: DWORD; flags: DWORD): HSTREAM;
  external 'BASS_StreamCreateFile@files:bass.dll stdcall';
function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL;
  external 'BASS_ChannelPlay@files:bass.dll stdcall';
function BASS_SetConfig(option: DWORD; value: DWORD ): BOOL;
  external 'BASS_SetConfig@files:bass.dll stdcall';
function BASS_Free: BOOL;
  external 'BASS_Free@files:bass.dll stdcall';

procedure InitializeWizard();
var
  s, Name: string;
  i : Integer;
  StreamHandle: HSTREAM;
  BackgroundImage: TBitmapImage;
  BackgroundForm: TForm;
begin
// ---------------
// Загрузка музыки
// ---------------
  ExtractTemporaryFile('hal1.mp3');
  if BASS_Init(-1, 44100, 0, 0, 0) then
  begin
    StreamHandle := BASS_StreamCreateFile(False,
      ExpandConstant('{tmp}\hal1.mp3'), 0, 0, 0, 0,
      EncodingFlag or BASS_SAMPLE_LOOP);
    BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, 2500);
    BASS_ChannelPlay(StreamHandle, False);
  end;
BackgroundForm:= TForm.Create(nil)
BackgroundForm.BorderStyle:= bsNone
BackgroundForm.OnActivate:= @BackgroundOnActivate;
ShowWindow(BackgroundForm.Handle, sw_ShowMaximized) // фоновое окно на полный экран
BackgroundImage:= TBitmapImage.Create(BackgroundForm)
BackgroundImage.Align:= alClient
BackgroundImage.Stretch:= True
ExtractTemporaryFile('fon.bmp')
BackgroundImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\fon.bmp'))
BackgroundImage.Parent:= BackgroundForm
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  case CurPageID of
    wpInstalling:
        begin
            ITD_Init;
            CreateDir(AddBackslash(Wizarddirvalue()) + '\1.5.2 Bukkit\');
            CreateDir(AddBackslash(Wizarddirvalue()) + '\1.5.1 Bukkit\');
            CreateDir(AddBackslash(Wizarddirvalue()) + '\1.5.0 Bukkit\');
            CreateDir(AddBackslash(Wizarddirvalue()) + '\1.4.7 Bukkit\');
            CreateDir(AddBackslash(Wizarddirvalue()) + '\1.4.6 Bukkit\');
            CreateDir(AddBackslash(Wizarddirvalue()) + '\1.4.7 MCPC\');
            CreateDir(AddBackslash(Wizarddirvalue()) + '\1.5.1 MCPC\');
            CreateDir(AddBackslash(Wizarddirvalue()) + '\1.5.2 MCPC\');
            itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/02161_1.5.2-R0.2/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.2 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.2
            itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/02099_1.5.1-R0.3/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.1 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.1
            itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01980_1.5-R0.1/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.0 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.0
            itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01845_1.4.7-R1.0/craftbukkit.jar',Wizarddirvalue()+'\1.4.7 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.4.7
            itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01800_1.4.6-R0.4/craftbukkit-dev.jar',Wizarddirvalue()+'\1.4.6 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.4.6
            itd_addfile('http://ci.md-5.net/job/MCPC-Plus-Legacy/lastSuccessfulBuild/artifact/target/mcpc-plus-legacy-1.4.7-R1.1-SNAPSHOT-f534-L67.jar',Wizarddirvalue()+'\1.4.7 MCPC\'+'craftubkkit-1.0.0-SNAPSHOT.jar'); // MCPC+ Legacy 1.4.7
            itd_addfile('http://ci.md-5.net/job/MCPC-Plus/lastSuccessfulBuild/artifact/target/mcpc-plus-151compat-1.5.2-R1.1-forge736-C549.jar',Wizarddirvalue()+'\1.5.1 MCPC\'+'craftubukkit-1.0.0-SNAPSHOT.jar'); // MCPC+ 1.5.1
            itd_addfile('http://ci.md-5.net/job/MCPC-Plus/lastSuccessfulBuild/artifact/target/mcpc-plus-1.5.2-R1.1-forge736-B549.jar',Wizarddirvalue()+'\1.5.2 MCPC\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // MCPC+ 1.5.2
            itd_setoption('UI_DetailedMode', '1'); // Детализированный режим
            itd_downloadafter(wpInstalling); // Загружаем файл после установки
        end;
    end;
end;

procedure DeinitializeSetup;
begin
    BASS_Free;
end;

Последний раз редактировалось saurn, 16-06-2013 в 18:21.

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

Отправлено: 17:12, 16-06-2013 | #646


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


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

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


saurn, Если сделать, как у Вас, InnoTools Downloader не может скачать файлы:
Sorry, the files could not be downloaded. Click 'Retry' to try downloading the files again, or click 'Cancel' to terminate setup.
Какие ещё могут быть идеи?

Отправлено: 17:28, 16-06-2013 | #647


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


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

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


Цитата saurn:
архив с вашим скриптом и набором файлов необходимых для работы инстала »
Вот: http://rghost.ru/46797068 Программа + файлы для инстала + скрипт (~7 мегабайт)

Отправлено: 18:00, 16-06-2013 | #648


Ветеран


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

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


volga163@vk, обновил свой предыдущий пример http://forum.oszone.net/post-2168645-646.html

Последний раз редактировалось saurn, 16-06-2013 в 18:39.

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

Отправлено: 18:23, 16-06-2013 | #649


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


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

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


saurn, Спасибо ОГРОМНОЕ, теперь всё работает. Разобрался.

Отправлено: 18:55, 16-06-2013 | #650



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход