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

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

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

Ветеран


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


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

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


Изменения
Автор: jameszero
Дата: 08-11-2010
Описание: тема закрыта
Лимит страниц.
Тема закрыта.
Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3]




Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


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

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать;

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы. Официальный сайт - недоступен.
    Последняя версия: 2.0.8 [12.11.2006] - Страница с зеркалами;

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

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

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

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


Ссылка на архив предыдущей темы (также можно скачать из вложения)

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


Отправлено: 22:06, 23-08-2009

 

Аватара для A1EXXX

Старожил


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

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


Я использую скрипт FreeArc от Bulat_Ziganshin для распаковки. В архиве есть обработанные precomp'ом файлы. Возврат из *.pcf в оригинал я задаю через командную строку в секции [Run], но вот беда, исталлятор хочет выполнить преобразование до распаковки архива, что невозможно. Кто знает как это исправить? Искал флаг, который мог бы задать запуск из Run'a после всего-всего, но так и не нашёл.....

Отправлено: 01:01, 10-09-2009 | #71



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

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


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


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

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


A1EXXX, в процедуре CurStepChanged на шаге ssPostInstall после распаковки архивов запусти precomp с нужными параметрами через exec.

Отправлено: 01:04, 10-09-2009 | #72


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


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

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


читать дальше »
[Files]
Source: 1.bmp; DestDir: {tmp}; Flags: dontcopy
Source: 2.bmp; DestDir: {tmp}; Flags: dontcopy
Source: 3.bmp; DestDir: {tmp}; Flags: dontcopy
Source: 4.bmp; DestDir: {tmp}; Flags: dontcopy
Source: 5.bmp; DestDir: {tmp}; Flags: dontcopy
Source: 6.bmp; DestDir: {tmp}; Flags: dontcopy
[code]
ExtractTemporaryFile('1.bmp');
ExtractTemporaryFile('2.bmp');
ExtractTemporaryFile('3.bmp');
ExtractTemporaryFile('4.bmp');
ExtractTemporaryFile('5.bmp');
ExtractTemporaryFile('6.bmp');

BmpFile:= TBitmapImage.Create(WizardForm);
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\1.bmp'));
BmpFile.SetBounds(0, 0, 497, 360);
BmpFile.Stretch:= true
BmpFile.Parent:= WizardForm.WelcomePage;

BmpFile:= TBitmapImage.Create(WizardForm);
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\2.bmp'));
BmpFile.SetBounds(0, 0, 497, 360);
BmpFile.Stretch:= true
BmpFile.Parent:= WizardForm.LicensePage;

BmpFile:= TBitmapImage.Create(SystemRequirementPage);
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\3.bmp'));
BmpFile.SetBounds(0, 0, 497, 360);
BmpFile.Stretch:= true
BmpFile.Parent:= SystemRequirementPage.Surface;

BmpFile:= TBitmapImage.Create(WizardForm);
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\4.bmp'));
BmpFile.SetBounds(0, 0, 497, 360);
BmpFile.Stretch:= true
BmpFile.Parent:= WizardForm.InfoBeforePage;

BmpFile:= TBitmapImage.Create(WizardForm);
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\4.bmp'));
BmpFile.SetBounds(0, 0, 497, 360);
BmpFile.Stretch:= true
BmpFile.Parent:= WizardForm.SelectDirPage;
BmpFile:= TBitmapImage.Create(WizardForm);

BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\6.bmp'));
BmpFile.SetBounds(0, 0, 497, 360);
BmpFile.Stretch:= true
BmpFile.Parent:= WizardForm.SelectProgramGroupPage;

сделайте чтобы он работал

Отправлено: 07:45, 10-09-2009 | #73


Аватара для Berline

Старожил


Автор проектов


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

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


Вопрос может уже звучал: как добавить на страницу выбора компонентов 2 галочки - выделить все - снять все отметки?

И
Цитата Krekerpro:
Доброго времени суток,кто нибудь знает,как реализовать это http://clip2net.com/page/m0/1799727 http://clip2net.com/page/m0/1799737 http://clip2net.com/page/m0/1799740 ??? »
Подниму вопрос - мне интересно из этого - отмеченные сверху "вкладки" этапы установки...

-------
Ни что так не стимулирует повысить стабильность системы как приближающийся отпуск...


Отправлено: 10:24, 10-09-2009 | #74


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


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

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


Berline это все фотошоп ....

Отправлено: 12:15, 10-09-2009 | #75


Аватара для A1EXXX

Старожил


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

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


BlackSelf, можешь наглядно изобразить на примере любого файла, а то не совсем пойму какие именно параметры нужно задать... И чтоб появился StasusMsg, мол подождите и т.д.

Отправлено: 15:06, 10-09-2009 | #76


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


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

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


A1EXXX, код на работоспособность не проверялся, но должно быть примерно так:
читать дальше »
Код: Выделить весь код
...

[Files]
Source: precomp04.exe; DestDir: {app}; Flags: ignoreversion
Source: packjpg_dll.dll; DestDir: {app}; Flags: ignoreversion

[_code]
...

Var
  ProcessLabel: TLabel;

...

Procedure InitializeWizard();
begin
  ProcessLabel := TLabel.Create(WizardForm);
  with ProcessLabel do begin
    Left := ProgressBar.Left;
    Top := ProgressBar.Top + ProgressBar.Height + ScaleX(5); //положение под себя отредактируй
    AutoSize:= true;
    Caption:= 'Рекомпрессия файлов игры...'
    Parent := WizardForm.InstallingPage;
    Transparent:= True;
    Hide;
  end;
end;

...

procedure CurStepChanged(CurStep: TSetupStep);
var
res: Integer;
begin
    if CurStep = ssInstall then begin
        StartInstall:= GetTickCount    
        WndHookID:= SetWindowsHookEx(WH_CALLWNDPROC, WrapCWPSTRUCTProc(@OnWndHook, 3), 0, GetCurrentThreadID); 
        TimerID:= SetTimer(0, 0, 500, WrapTimerProc(@MyTimerProc, 4));   
        if not {#isFalse(SetupSetting("Uninstallable"))} then Status.count:= -1;
    end;
    if CurStep = ssPostInstall then
    begin
        StartInstall:= GetTickCount   
        UnPackError:= UnPack('{#Archives}')
        if UnPackError <> 0 then begin // Error occured, uninstall it then
            if not {#isFalse(SetupSetting("Uninstallable"))} then 
                Exec(ExpandConstant('{uninstallexe}'), '/SILENT','', sw_Hide, ewWaitUntilTerminated, n);   
            WizardForm.caption:= SetupMessage(msgErrorTitle) +' - '+ cm('ArcBreak')
            SetTaskBarTitle(SetupMessage(msgErrorTitle))
        end else
            SetTaskBarTitle(SetupMessage(msgSetupAppTitle));
ProcessLabel.show
Exec(ExpandConstant('{app}\precomp04.exe'), ' -r data.pcf ', '', SW_HIDE, ewWaitUntilTerminated, res); 
DeleteFile(ExpandConstant('{app}\data.pcf'));
    end;
    if CurStep = ssDone then
DeleteFile(ExpandConstant('{app}\precomp04.exe'));
DeleteFile(ExpandConstant('{app}\packjpg_dll.dll'));
end;

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

Отправлено: 16:31, 10-09-2009 | #77


Аватара для A1EXXX

Старожил


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

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


BlackSelf, спасибо большое, но другом форуме мне подкинули альтернативу попроще: просто заменить ssPostInstall на ssInstall - проверил, работает! Ну всё равно спасибо!!!

P.S. Никто не сталкивался с такой фигнёй при распаковке, когда, например, DefaultDirName={pf}\Название компании\Название игры\ такой, а я хочу установить в D:\Games\Название игры\ и распаковка сначала начинается во временный файл $$arcpackedfile$$.tmp возле setup.exe и лишь потом в нужную папку (наверно, до конца ждать не стал), а не сразу в неё!!! Тупо как-то! Можно это поправить, а то устанавливать по стандартно указанному пути мало кто станет.....

Отправлено: 18:11, 10-09-2009 | #78


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


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

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


Тоже заменил на ssInstall, но теперь проблемка не распаковывает архивы с прекомпом т.к файлы неоходимые для распаковки еще не скопировались на диск. Как бы сделать что бы вот это:
#ifdef precomp
Source: {#precomp}; DestDir: {sys}; Flags: deleteafterinstall
Source: {#GetEnv("ProgramFiles")}\FreeArc\bin\arc.ini; DestDir: {sd}; Flags: deleteafterinstall
#endif

скопировалось в назначенные каталоги как только запустил инсталятор, посоветовали вот это но он копирует файлы в темп =\
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('precomp04.exe');
ExtractTemporaryFile('packjpg_dll.dll');
ExtractTemporaryFile('arc.ini');
end;

Отправлено: 20:27, 10-09-2009 | #79


Аватара для A1EXXX

Старожил


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

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


DemonAk, я precomp не так использую. Прекомпрессированные файлы запаковую вместе с остальными файлами игры FreeArc'ом (ну и плюс в одну папку с ними ложу precomp.exe и packjpg_dll.dll), а замет задаю рекомпрессию через командную строку в секции [Run], вот пример одного файла:

[Run]
Filename: {app}\precomp.exe; Parameters: "-o""mp_vacant.ff"" -r ""mp_vacant.pcf"""; WorkingDir: {app}; StatusMsg: Выполняется рекомпрессия файлов, подождите 10-15 минут...; Flags: runhidden runasoriginaluser => рекомпресиия
Filename: cmd.exe; WorkingDir: {app}; Parameters: /C del /F /Q mp_vacant.pcf; Flags: runhidden runasoriginaluser => удалить *.pcf файл
Filename: cmd.exe; WorkingDir: {app}; Parameters: /C del /F /Q packjpg_dll.dll precomp.exe; Flags: runhidden runasoriginaluser => удалить файлы precomp'а

С такой трактовкой ssInstall у меня работает

P.S. Проценты на месте )))
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:27, 10-09-2009 | #80



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход