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

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

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

Аватара для 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] - Скачать;


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

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

 

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


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

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


Подскажите плиз, как сделать так, чтобы при выборе 2 компонентов (Flags: exlusive):
1) при выборе 1 компонента создавался деинсталлятор
2) при выборе 2 компонентов не создавался деинсталлятор.
Если нельзя через компоненты сделать, то может быть через Tasks можно.
Заранее Спасибо!

Отправлено: 18:54, 04-11-2013 | #1401



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

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


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


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

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


ATTACUE

01. Но я не могу найти игру в реестре по пути reg:HKLM\SOFTWARE\ (Там нет папки World_Of_Tanks)

02. Ты меня не понял, у меня уже установленная игра World_Of_Tanks. В ней есть папка Audio, она лежит в папке res. Мне нужно чтоб установщик скопировал эту папку из папки res в папку res_mods, то есть как-то так:
[Files]
Source: "{app}\res\audio\*"; DestDir: "{app}\res_mods"; Flags: recursesubdirs

03. Команда RemoveDir(ExpandConstant('{app}\res_mods')); мне нравится только куда её вставить хз

Отправлено: 19:28, 04-11-2013 | #1402


Аватара для ATTACUE

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


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

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


alexxxdar@vk,

01. Если устанавливал, должна быть, только вот она может называться по-другому, (это нужно учитывать)
если честно - даже и не знаю как называется она, так как не играю в танки.
Как вариант - ветка HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Всякие_папки
и просмотреть их, если конечно система 64-битная.
Тем не менее все равно в скрипте указывается без Wow6432Node, так как если приложение 32-битное, оно (вроде бы как)
скопируется, по крайней мере у меня значения проверяет корректно.
Если игра представляет собой архив без установочника, то в этом случае в реестре ты не найдешь нужные тебе ключи.

02. и 03. Поискав по форуму, наткнулся на это, там есть пара примеров, которые ты можешь приспособить под себя

-------
Close the world, Open the nExt.


Отправлено: 20:36, 04-11-2013 | #1403


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


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

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


ATTACUE,

Спасибо за помощь! Что-то я прочитал документ который ты мне скинул, нашел пару функций которые мне нужно, но нифига не получается... Копирую нужные коды в раздел [code] прописываю свои пути и ничего не работает, или вообще ошибки выбивает при компиляции, кароче я в этом ничего не понимаю...

Отправлено: 02:35, 05-11-2013 | #1404


Аватара для ATTACUE

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


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

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


alexxxdar@vk,
Большинство ошибок при компиляции - очевидны, посмотри на них.
Возможно просто отсутствует знак ";"
или продублирован идентификатор
или какая-то функция не прописана в начале секции [code].
Если используешь сторонние или ранее написанные скрипты как модули - ошибки могут быть и в них,
и в этом случае в ошибке прописывается - какой модуль и путь до него.
Попробуй немного разобраться с кодом в примерах. Знаю - это сложно, но возможно тогда ты увидишь и поймешь свои ошибки.
В настройках Inno Setup включи отображение номеров строк - проще будет ориентироваться по коду.
А еще лучше - используй Inno Setup отсюда.
Я бы рад бы тебе помочь с твоим скриптом, посидеть на досуге и просмотреть, но у меня не так много времени на свой скрипт, который я допиливаю, и который занимает все мое свободное время.
Посмотри этот документ или на этой странице тоже есть интересные примеры (например Бекап файлов).
Уверен - они тебе не раз помогут.
К сожалению больше ни чем конструктивным помочь я не смогу.

-------
Close the world, Open the nExt.


Последний раз редактировалось ATTACUE, 05-11-2013 в 14:52.


Отправлено: 14:30, 05-11-2013 | #1405


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


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

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


ATTACUE,

Уже вроде как получилось!
Посмотри, правильный код?
Это код на то чтоб перед установкой чистилась папка, копировалось туда нужные мне файлы а после удаления удалялось всё...

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
begin
if DirExists(ExpandConstant('{app}\res_mods')) then
DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
end;
begin
CopyDir(ExpandConstant('{app}\res\audio'),ExpandConstant('{app}\res_mods\0.8.9'));
end;
begin
CopyDir(ExpandConstant('{app}\res\text'),ExpandConstant('{app}\res_mods\0.8.9'));
end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
DelTree(ExpandConstant('{app}\res_mods\0.8.9\audio'), True, True, True);
end;
begin
DelTree(ExpandConstant('{app}\res_mods\0.8.9\text'), True, True, True);
end;
end;

И спасибо Большое! Реально помог))

Отправлено: 15:32, 05-11-2013 | #1406


Аватара для nik1967

Старожил


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

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


alexxxdar@vk, слишком много бегинов и эндов. Куда столько?
можно проще :)
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then begin
    if DirExists(ExpandConstant('{app}\res_mods')) then begin
      DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
      CopyDir(ExpandConstant('{app}\res\audio'),ExpandConstant('{app}\res_mods\0.8.9'));
      CopyDir(ExpandConstant('{app}\res\text'),ExpandConstant('{app}\res_mods\0.8.9'));
    end;
  end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usPostUninstall then begin
    DelTree(ExpandConstant('{app}\res_mods\0.8.9\audio'), True, True, True);
    DelTree(ExpandConstant('{app}\res_mods\0.8.9\text'), True, True, True);
  end;
end;

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


Отправлено: 16:57, 05-11-2013 | #1407


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


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

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


nik1967,

Работает! Только возникает 2 вопроса:

01. Почему установщик копирует папку с файлами audio в {app}\res_mods\0.8.9 и также содержимое папки audio в {app}\res_mods\0.8.9

А без кода DelTree(ExpandConstant('{app}\res_mods'), True, True, True); всё нормально! В чём может быть проблема?

begin
if CurStep = ssInstall then begin
if DirExists(ExpandConstant('{app}\res_mods')) then begin
DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
CopyDir(ExpandConstant('{app}\res\audio'),ExpandConstant('{app}\res_mods\0.8.9'));
CopyDir(ExpandConstant('{app}\res\text'),ExpandConstant('{app}\res_mods\0.8.9'));
end;
end;
end;

02. Почему установщик копирует папку и перед установкой, и после, что мешает установить файлы из секции [Files] ?

[Files]
Source: "E:\Игры Install\WOT\Mod Pack\Install_mods\Mods\audio\6_chuvstv\sirena1\*"; DestDir: "{app}"; Components: A\audio\6_chuvstv\sirena1; Flags: recursesubdirs

[code]

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then begin
if DirExists(ExpandConstant('{app}\res_mods')) then begin
DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
CopyDir(ExpandConstant('{app}\res\audio'),ExpandConstant('{app}\res_mods\0.8.9'));
CopyDir(ExpandConstant('{app}\res\text'),ExpandConstant('{app}\res_mods\0.8.9'));
end;
end;
end;

Последний раз редактировалось alexxxdar@vk, 05-11-2013 в 17:22.


Отправлено: 17:15, 05-11-2013 | #1408


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


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

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


Здавствуйте! Хочу спросить, можно ли в ISDone заменить процедуру
Код: Выделить весь код
procedure CreateControls();
которая обрабатывается процедурой
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
на
Код: Выделить весь код
InitializeWizard();
? Просто через последнюю процедуру инсталл не залипает в самом начале установки.

Отправлено: 21:30, 05-11-2013 | #1409


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


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

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


ВСем доброе утро. Подскажите скрипт на удаление игры программы и т.п. Стандартный не работает почему то! пишет вот такую штуку

или такую


Подскажите плиз как это всё исправить

Отправлено: 08:05, 06-11-2013 | #1410



Компьютерный форум 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




 
Переход