Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)

Модерирует : gyra, Maz

Widok (29-12-2008 12:26): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Это мощное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. Можно создавать свои страницы, используя Inno Setup Form Designer.
По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта.  
 
Последний релиз: 5.2.3 [10.03.2008]
История версий | скачать | все сборки || Скачать Preprocessor | все сборки
 
Русификатор от NightW0lf для версии 5.2.0
Скачать | зеркало
 
Русская справка к версиям 5.0.x, автор перевода BagIra
Скачать | зеркало || cкачать в .chm формате
 
Руководство по расширенным возможностям Inno Setup 5 (не для чайников) от Kindly
Версия 5.1 скачать || версия 5 скачать|зеркало || версия 4 скачать|зеркало || версия 3 скачать|зеркало
 
Inno Setup Extensions Knowledge Base (содержит ответы на многие вопросы)
Новая версия (Web-интерфейс) || Старая chm-версия скачать | зеркало
 
Коллекция скриптов и Сборник вопросов, собранных из этой и предыдущих частей топика.
 
Corona Skin & Check System Requirements от Victor_Dobrov
Скачать | зеркало | скриншот | описание | старая версия || InnoSetup Upgrade || Слайд-шоу
Обложка для Inno Setup. Сделает инсталлятор более симпатичным и добавляет расширения: Проверка минимальных требований. Расширенный прогрессбар. Расчёт времени до завершения распаковки. Список дисков. Слайдшоу или AVI-файл в фоновом окне. Компактный режим установки. Деинсталляция неучтённых файлов. Экран справки/скриншота. Медиаплеер и многое другое...
 
Примечание: Если необходимо использовать метод проверки внешнего файла через сумму MD5 (который описан в 5 версии руководства от Kindly) для запуска инсталлятора, то понадобится калькулятор хеша MD5, калькулятор сумм MD5, SHA-256, CRC32. Если требуется узнать, какие ключи реестра меняет та или иная программа, используйте RegShot. Чтобы растянуть фоновый рисунок на весь экран, в версии Inno Setup 5.1.10 и выше используйте этот код.

Дополнительные утилиты для Inno Setup


Мощная надстройка для Inno Setup, при помощи которой создавать свои инсталляторы становится очень просто.
 
Последний релиз: 5.2.1 [15.10.2007]
Скачать | зеркало || Русификатор | зеркало

Простой мастер создания скрипта для установки одной или нескольких игр. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации.
 

Прежнее название ScriptMaker. Удобная оболочка для облегчения написания скриптов установки для Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
 
Последний релиз: 1.0.3.1 [23.03.2008]
Скачать | обновить (нужен QuickStartPack 5.2.3)

Распаковщик установок, сделанных с помощью Inno Setup. При распаковке извлекаются  ресурсы и скрипт установки (немного усечённый). Возможно подключение к Total Commander или FAR с помощью MultiArc плагинов.
Поддерживает распаковку инсталляторов, сделанных с помощью Inno Setup начиная с версии 3.0.0-beta по 5.2.3
 
Последний релиз: 0.20 [23.05.2008] New
Скачать | Расширенная версия (с поддержкой русского языка)  

Примечание для всех участников

Объёмные скрипты или части кода заключайте в тег more, чтобы ваш вопрос в сообщении не затерялся среди множества строк прилагаемого скрипта.

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 18:16 17-06-2008 | Исправлено: equis, 17:51 06-12-2008
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
 
Спасибо, я уже догодался, методом тыка.

Цитата:
При компиляции из ISTool комментарий сам прописывается, что за...

Прокомментируешь?
 
Добавлено:
Видимо это происходит из-за того, что строка начинается с пробела.
 
Такой вопрос: препроцессор можно использовать для компиляции дистрибутивов и без его прямого назначение, то есть там, где он использоваться не будет или лучше им пользоваться для компиляции дистрибутивов там где он нужен, как в моем случае?
 


Добавлено:

Код:
[Files]
Source: ResFiles\*; DestDir: {app}\ResFiles; Flags: deleteafterinstall

Как заставить удалить всю папку после установки? Удаляются только файлы в ней, приходиться применять эту команду:

Код:
[Run]
Filename: {sys}\cmd.exe; Parameters: "/C RD /Q /S ""{app}\ResFiles"""; WorkingDir: {sys}; StatusMsg: Завершение установки; Flags: waituntilterminated runhidden

Всего записей: 3704 | Зарегистр. 29-01-2005 | Отправлено: 06:34 21-06-2008 | Исправлено: boss911, 07:20 21-06-2008
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boss911

Цитата:
препроцессор можно использовать для компиляции дистрибутивов...
-- некорректная постановка вопроса, но если коротко, то да.
 

Цитата:
Как заставить удалить всю папку после установки?
-- добавить в код:
 
[Dirs]
Name: "{app}\ResFiles"; Flags: deleteafterinstall
 

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 09:39 21-06-2008
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri

Цитата:
некорректная постановка вопроса

Для компиляции тех дистров, где препроцессор использоваться не будет. Вот и спрашиваю: в таких случаях лучше юзать Inno без препроцессора или можно и с ним? Чтобы инсталлятор не выполнял лишних ему функций.
 

Цитата:
[Dirs]  
Name: "{app}\ResFiles"; Flags: deleteafterinstall

Если бы так.

Код:
[Dirs]
Name: {app}\ResFiles; Flags: deleteafterinstall
 
[Files]
Source: C:\Vista Pack 2.2\ResFiles\*; DestDir: {app}\ResFiles; Flags: recursesubdirs createallsubdirs deleteafterinstall

В папке "ResFiles" есть файлы и подкаталоги, в подкаталогах тоже файлы. Так вот, после установки, остается пустая папка с пустыми подкаталогами.

Всего записей: 3704 | Зарегистр. 29-01-2005 | Отправлено: 17:46 21-06-2008
SotM



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
boss911

Цитата:
Вот и спрашиваю: в таких случаях лучше юзать Inno без препроцессора или можно и с ним? Чтобы инсталлятор не выполнял лишних ему функций.  

 
Я тоже не могу понять твоей "нужды". А какая тебе разница если компилятор использует препроцессор или нет? Ты эту разницу разве видишь?!
Инсталлятор будет выполнять именно то, что ты ему скажешь, "лишнего" он ничего не будет делать. (за исключением инструкций по умолчанию).
 
 
 

Всего записей: 965 | Зарегистр. 28-11-2006 | Отправлено: 19:39 21-06-2008 | Исправлено: SotM, 19:41 21-06-2008
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SotM

Цитата:
Инсталлятор будет выполнять именно то, что ты ему скажешь, "лишнего" он ничего не будет делать. (за исключением инструкций по умолчанию).

Ответ получен, спасибо.
 
Так как же мне заставить удалятся всю папку с подкаталогами после установки? Почему не срабатывает способ с deleteafterinstall.

Всего записей: 3704 | Зарегистр. 29-01-2005 | Отправлено: 20:16 21-06-2008
chelobey

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос в следующем. можно ли сделать на странице выбора компонентов "открывающиеся-закрывающиеся" списки. то есть при клике на компонент "разворачиваются" подкомпоненты. такое нашел и в NSIS, Setup Factory, а в Inno как?
да, по дефаулту списки "свернуты"

Всего записей: 78 | Зарегистр. 31-05-2007 | Отправлено: 21:22 21-06-2008
SotM



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
chelobey
Чтобы не было недопонимая приведи лучше скриншот того, что ты хочешь получить в результате.

Всего записей: 965 | Зарегистр. 28-11-2006 | Отправлено: 22:57 21-06-2008
serg_aka_lain

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boss911

Цитата:
Так как же мне заставить удалятся всю папку с подкаталогами после установки?

 
Ну, в этом случае думаю безопасно будет использовать DelTree
 
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssDone then
  begin
    DelTree(ExpandConstant('{app}') + '\ResFiles', True, True, True);
  end;
end;
 
з.ы. Похожая ситуация была, я прописывал все вложенные папки,
      для секции Dirs других флагов нет кроме (deleteafterinstall uninsneveruninstall uninsalwaysuninstall) , ну и ещё пара флагов для работы с NTFS.
Так что DelTree проще.

Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 03:38 22-06-2008
Nekt

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помоигите  
DestDir: {reg:HKLM\SOFTWARE\GSC Game World\STALKER-SHOC,InstallPath|{app}}\gamedata\config\;  
такое прописываю, и если выбираю другую папку то ставят она в ту которая прописана в ключе реестра.  
Как правильно?  
Спасибо заранее.

Всего записей: 640 | Зарегистр. 24-01-2006 | Отправлено: 16:38 22-06-2008 | Исправлено: Nekt, 20:52 22-06-2008
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serg_aka_lain
 
Работает. А можно сделать, чтобы оно дождалось удаления, после чего только закрывался инсталлятор, в моем случае переходит на страничку с просьбой перезагрузиться?

Всего записей: 3704 | Зарегистр. 29-01-2005 | Отправлено: 16:41 22-06-2008
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
И еще такой вопрос: мне нужно удалить не одну папку, а две или более, будет ли правильно написать так (?):

Код:
procedure CurStepChanged(CurStep: TSetupStep);  
begin  
  if CurStep = ssDone then  
  begin  
    DelTree(ExpandConstant('{app}') + '\Folder1', True, True, True);  
    DelTree(ExpandConstant('{app}') + '\Folder2', True, True, True);
    // и т.д.
  end;  
end

"Folder1" содержит подкаталоги, а "Folder2" без подкаталогов, только файлы внутри.
Я проверил, так работает, но насколько это правильно.
 
Добавлено:
Да, вот еще: как в этот код дописать удаления файлов по маске:

Код:
{app}\Folder3\*.log

Всего записей: 3704 | Зарегистр. 29-01-2005 | Отправлено: 19:00 22-06-2008 | Исправлено: boss911, 19:03 22-06-2008
serg_aka_lain

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boss911

Цитата:
чтобы оно дождалось удаления

 
Попробуй CurStep = ssPostInstall
 

Цитата:
Я проверил, так работает, но насколько это правильно.

- правильно.

Цитата:
{app}\Folder3\*.log  
- а всю папку нельзя удалять, только .log(и)?,
 
если только логи, вот пример удаления по маске
 
DelTree(ExpandConstant('{app}') + '\Folder3\*.log', False, True, False);
 

Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 20:11 22-06-2008 | Исправлено: serg_aka_lain, 20:38 22-06-2008
Mitnadev



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как вообще определить какой инсталлер используется? Вот допустим Daemon Tools поледний, что там за инсталлер?

Всего записей: 149 | Зарегистр. 11-12-2007 | Отправлено: 20:42 22-06-2008 | Исправлено: Mitnadev, 20:42 22-06-2008
serg_aka_lain

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nekt

Цитата:
 такое прописываю, и если выбираю другую папку то ставят она в ту которая прописана в ключе реестра.  
Как правильно?  

 
У Тебя это какой-то мод для Сталкера?
Если для установки нужна оригинальная игра, то проще (и надо) определять её наличие на этапе инициализации инсталлятора.
 
 
Mitnadev
Они всегда пользовались NSIS.  
 

Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 21:10 22-06-2008
Nekt

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serg_aka_lain каким образом? и как сделать что-бы если выбрал пользователь другую папку то в неё устанавливалось, все что нужно.

Всего записей: 640 | Зарегистр. 24-01-2006 | Отправлено: 21:30 22-06-2008 | Исправлено: Nekt, 21:34 22-06-2008
ChVL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть ли у Inno возможность работать с процессом в RAM?  
Конкретнее: запущена программа, её процесс находится в памяти системы. Может ли Inno обратиться к нему и там сделать правки с помощью, например, секции [Cоde]? Надо что-то аналогичное функциям Delphi CreateProcess, ReadProcessMemory и WriteProcessMemory.

Всего записей: 1746 | Зарегистр. 18-06-2003 | Отправлено: 21:36 22-06-2008 | Исправлено: ChVL, 21:42 22-06-2008
serg_aka_lain

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nekt
 
 Не совсем понятно, нужна ли оригинальная игра. Если нет, то просто
DestDir: "{app}";
DestDir: "{app}\Path";

Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 22:01 22-06-2008
Nekt

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
мне надо по файленно, для каждого файла отдельная папка.  
И нужна конечно определять где находится ориг игра, но давать возможность пользователю выбрать папку по желанию и установить в ние.

Всего записей: 640 | Зарегистр. 24-01-2006 | Отправлено: 22:46 22-06-2008
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
serg_aka_lain

Цитата:
DelTree(ExpandConstant('{app}') + '\Folder3\*.log', False, True, False);

То, что и надо было. Да, удалять нужно только файлы, то есть логи.
 

Цитата:
Попробуй CurStep = ssPostInstall

Попробовал заменить if CurStep = ssDone then на if CurStep = ssPostInstall, теперь не компилируется, спотыкается на нижней строке от if CurStep = ssPostInstall (begin).
 
Добавлено:


Метод тыка рулит!
Вот так теперь работает:

Код:
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then
  begin
    DelTree(ExpandConstant('{app}') + '\Folder1', True, True, True);
    DelTree(ExpandConstant('{app}') + '\Folder2', True, True, True);
    DelTree(ExpandConstant('{app}') + '\Folder3\*.log', False, True, False);
  end;
end;

все удаляется, а потом закрывается инсталл, как и нужно было.  
 
А можно в этот код добавить текст, который бы выводился на странице инсталлятора в момент выполнения данного (procedure CurStepChanged) действия? Типа как флаг 'StatusMsg' в секции Run.

Всего записей: 3704 | Зарегистр. 29-01-2005 | Отправлено: 23:00 22-06-2008 | Исправлено: boss911, 23:30 22-06-2008
serg_aka_lain

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boss911

Цитата:
А можно в этот код добавить текст, который бы выводился на странице инсталлятора в момент выполнения данного (procedure CurStepChanged) действия? Типа как флаг 'StatusMsg' в секции Run.

 
Время на удаления не такое уже и большое , но попробуй так:
 
 
procedure CurStepChanged(CurStep: TSetupStep);  
begin  
  if CurStep = ssPostInstall then  
  begin
    WizardForm.StatusLabel.Caption := 'Удаление временных файлов ... ';
    DelTree(ExpandConstant('{app}') + '\Folder1', True, True, True);  
    DelTree(ExpandConstant('{app}') + '\Folder2', True, True, True);  
    DelTree(ExpandConstant('{app}') + '\Folder3\*.log', False, True, False);  
  end;  
end;

Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 23:59 22-06-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)
Widok (29-12-2008 12:26): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru