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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Chanka

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri,
 
Посмотри, пожалуйста, ПМ!!!

Всего записей: 208 | Зарегистр. 24-08-2006 | Отправлено: 11:08 08-08-2008
nOobCrafter

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня все еще есть трабл вот с этим. Помогите кто инбудь пожалуйста.

Цитата:
 
Вопрос по поводу "InnoSetupFAQ_ru-board.chm"  
вот код оттуда, почему с его помошью нельзя забэкапить "любую" папку, а только ходящую в состав инсталяшки? Я допустим хочу сделать бэкап рабочего стола при инстале проги (для примера говорю, хоть C:\123), а этого неполучается, в {sd}\Backup создается папка со временем инстала, но она пуста( Как можно это реализовать?

 
P.S. Фукнция -
Код:
BackupDir(ExpandConstant('C:\123\'), ExpandConstant('C:\BackUp\' + '-' + GetDateTimeString('dd/mm/yyyy hh:nn:ss', '-', '-')), False);

работает так как надо только копия создается каждую секунду во время установки, то есть после инстала я имею папку C:\BackUp но в ней куча папок типа "-08-08-2008 14-47-34", кол-во зависит от того сколько секунд происходила инсталяция((
Как это можно пофиксить?
 
Сделал
Код:
BackupDir(ExpandConstant('C:\123\'), ExpandConstant('C:\BackUp\') + GetDateTimeString('dd/mm/yyyy hh:nn', '-', '-'), False);
Теперь еще одна папка "бэкапа" создается каждую минуту инстала, но все же это невыход.
Кстати кто знает что это за файл - "is-QUTNC.tmp" добавляется в папку бэкапа и весит 650 кб((( хотя в оригинале его нет, похоже что что то временное, но что, и как его можно убрать?
 
У меня так оформлено:
[code][Files]
Source: C:\Converter\*; DestDir: {app}\Converter; Flags: ignoreversion recursesubdirs createallsubdirs; Components: a
Source: C:\123\777\guard\*; DestDir: {app}\777\guard; Flags: ignoreversion recursesubdirs createallsubdirs; Components: a; BeforeInstall: CreateBackup
Source: C:\123\777\access\*; DestDir: {app}\777\access; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\123\777\ma\*; DestDir: {app}\777\ma; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\123\bde\*; DestDir: {app}\bde; Flags: ignoreversion recursesubdirs createallsubdirs; Components: d
Source: C:\123\paradox\*; DestDir: {app}\paradox; Flags: ignoreversion recursesubdirs createallsubdirs; Components: Paradox
Может ошибка вызова функции  CreateBackup?

Всего записей: 99 | Зарегистр. 26-06-2008 | Отправлено: 12:33 08-08-2008 | Исправлено: nOobCrafter, 16:40 08-08-2008
machetos

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ответ не нужен, проблема с размером шрифта и смещение прогресс бара решена..

Всего записей: 15 | Зарегистр. 26-03-2008 | Отправлено: 12:54 08-08-2008
htuos

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

Цитата:
Фукнция -
Код:
BackupDir(ExpandConstant('C:\123\'), ExpandConstant('C:\BackUp\' + '-' + GetDateTimeString('dd/mm/yyyy hh:nn:ss', '-', '-')), False);
 
работает так как надо только копия создается каждую секунду во время установки, то есть после инстала я имею папку C:\BackUp но в ней куча папок типа "-08-08-2008 14-47-34", кол-во зависит от того сколько секунд происходила инсталяция((
Как это можно пофиксить?  

не знаю что там у тебя не так (не видел кода твоей  BackupDir), но по идее не должна создаваться куча каталогов
попробуй этот код
у меня он работает нормально

Всего записей: 335 | Зарегистр. 06-03-2008 | Отправлено: 19:27 08-08-2008 | Исправлено: htuos, 20:23 08-08-2008
Diawer

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть вопрос по коду который мне помогли довести до ума, как сделать что бы
[Tasks]  
Name: askini; Description: Указать расположение файла регистрации; GroupDescription: Регистрация программы:  
отображалось на отдельной странице после страницы выбора дополнительных задач, где выбор дополнительных значков: соответственно если флажок установлен то появляется страница выбора файла, если нет то пропускается. Понадобилось это при упаковке игры где у меня в секции [Tasks_] много строк и эта важная опция теряется и не в тему среди всего.

Всего записей: 180 | Зарегистр. 08-05-2007 | Отправлено: 21:52 08-08-2008
ComradG



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

Цитата:
С каким параметром вызывать архивацию

Теперь дошло. Тока там Си тебе не поможет. На сайте самого Мелкософта по этому поводу есть целый раздел. Сам я тебе популярно на пальцах объяснить, наверное, не смогу - боюсь, что дам не совсем корректный ответ, так как сам лично на практике с этим не сталкивался. Постараюсь на днях скинуть ссылку. Кстати, уважаемый htuos
Цитата:
c:\WINDOWS\system32\zipfldr.dll
-эта библиотека отвечает за создание пожатой zip-алгоритмом папки, напрямую к zip архивации она отношения не имеет.
 

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 22:27 08-08-2008
Genri

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

Цитата:
Теперь дошло. Тока там Си тебе не поможет.
-- нда... случай клинический...
Судя по всему, ты впервые слышишь про методы системного шелла. И с С++ ты также плохо знаком. Можешь посмотреть пример на С++ - может хоть что-то поймешь.
 
А для остальных в ближайшее время выложу пример скрипта с возможностью архивации и разархивации с использованием системных методов (без дополнительных файлов). Надеюсь вопрос бекапов будет окончательно закрыт  
 
Добавлено:
Ах да, ты же кроме C++ еще и Python знаешь. На случай, если ты вдруг не только паскаль, но и си слегка подзабыл - специально для тебя - код на Python

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 23:25 08-08-2008
ComradG



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

Цитата:
 случай клинический... случай клинический...

Да пошел ты. Я никому и ничего доказывать не собираюсь, особенно таким идиотам как ты.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 23:34 08-08-2008
Genri

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

Цитата:
эта библиотека отвечает за создание пожатой zip-алгоритмом папки, напрямую к zip архивации она отношения не имеет
-- афигеть... целая библиотека... А на инно эта операция в пару строк:
procedure InitializeWizard();
var
  str: string;
  i: integer;
begin
  str:= Chr($50)+Chr($4B)+Chr($05)+Chr($06);
    for i:= 0 to 17 do
      str:= str + #0;
  SaveStringToFile('C:\TEMP\test.zip', str, False);
end;
... о чем там в майкрософте думают...
 
Добавлено:

Цитата:
Да пошел ты.
-- я так понимаю, что параметр ты мне не дашь? Ну что ж... как-нибудь сами... По-простому...

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 23:42 08-08-2008
ComradG



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

Цитата:
о чем там в майкрософте думают...

 О том, чтобы такие балбесы как ты не плодили на чужих компах малварь.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 23:59 08-08-2008
Raf_SE



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну это... Мне тут может ктонить помочь...

Цитата:
Ктонить знает как в реестре записать строку формата "multisz" с таким содержанием:
"{app}\Maps\(2)Challenger.scm
{app}\Maps\Ladder\(4)Lost Temple.scm
{app}\Maps\(5)Sherwood Forest.scm
{app}\Maps\(6)New Gettysburg.scm
{app}\Maps\(8)Green Valleys.scm"
т.е. чтобы было не одной сплошной линией, а каждый новый пункт был с новой строчки.

Мож это хотяб через код можно какнить реализовать? (я просто не шарю в паскалях)

----------
«Фашисты будущего будут называть себя антифашистами» ©

Всего записей: 1143 | Зарегистр. 06-08-2006 | Отправлено: 00:10 09-08-2008
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
htuos and all -- Процедура для бекапа с возможностью архивации. Есть еще моменты требующие доработки, но знаний не хватает.
 
Добавлено:
Raf_SE -- пиши в одну строку, но там где нужна новая строка, вставляй {break}

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 01:20 09-08-2008
htuos

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
за код спасибо, архивы создаются
правда вот это

Код:
while FindWindowEx( 0, 0, '#32770', 'Compressing...'  ) = 0 do Sleep( 1 );
while FindWindowEx( 0, 0, '#32770', 'Compressing...'  ) > 0 do Sleep( 200 );
 

лишнее, при архивировании небольших по размеру каталогов будет виснуть на первой строке
нужен другой способ ожидания окончания архивации, правда мысли по этому поводу пока отсутствуют

Всего записей: 335 | Зарегистр. 06-03-2008 | Отправлено: 03:38 09-08-2008
Victor_Dobrov



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

Для бэкапа файлов в архив можно проверять его размер (или то, что архив закрыт по завершении операции)
Для папки назначения можно проверять объём и, если он перестал увеличиваться, значит операция завершена.

Всего записей: 742 | Зарегистр. 27-09-2005 | Отправлено: 07:55 09-08-2008
Nep



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ComradG за оскорбления

Всего записей: 41940 | Зарегистр. 24-06-2001 | Отправлено: 09:27 09-08-2008
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
htuos, Victor_Dobrov -- это место у меня вызвало больше всего вопросов. Штатных средств получения какого-нибудь хендла процесса архивации я не знаю. Были попытки использовать Items.Count, но тогда проблемы в случае добавления файлов в существующий архив с частичной перезаписью. Окно вроде создается всегда (пробовал на файле в 9 байт). Возможность добавления в существующий архив временно закрыта.
По поводу размера: размер самого архива неизвестен пока его нет, а когда он создан - уже не нужен. Определение суммарного размера файлов хотя бы раз в секунду, при их большом кол-ве, вызовет дикие тормоза.  
 
Если кто-то из програмеров решал подобную задачу - буду благодарен. Достаточно указания - что проверять. Код сам пропишу.  
 
Добавлено:
И еще: я намеренно усложнил код, чтобы все уместить в одной процедуре. Это сделано для облегчения интеграции тем, кто не очень разбирается в программировании (проще объяснить как перенести одну процедуру с локальными переменными, чем несколько процедур и глобальные). Но если кому надо - отдельно процедуры архивации

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 12:04 09-08-2008 | Исправлено: Genri, 12:05 09-08-2008
Raf_SE



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как сделать чтоб при запуске, инсталлятор проверял ключь реестра:
Root: HKLM; Subkey: "SOFTWARE\Blizzard Entertainment\Starcraft"; ValueName: "InstallPath"; ValueType: String;
И если он его не нашёл, то писал чето типа: "Starcraft не найден, без его наличия вы не сможете установить мод Realistic. Пожалуйста, установите Starcraft и запустите данный инсталлятор заново."
При этом, ниже инсталлятора нужно чтоб было 2 кнопки "Продолжить" и "Отменить". Ну естественно, нажав на "Продолжить" инсталляция должна продолжиться, нажав на "Отменить" инсталлятор должен закрыться.
Если ключ "InstallPath" реестре найден, тогда инсталлятор никаких сообщений не должен выводить.

----------
«Фашисты будущего будут называть себя антифашистами» ©

Всего записей: 1143 | Зарегистр. 06-08-2006 | Отправлено: 19:53 09-08-2008 | Исправлено: Raf_SE, 19:56 09-08-2008
2Dem



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Люди, помогите пожалуйста!
Есть код:

Код:
 
  S := ExpandConstant('{app}')
  StringChangeEx(S, ':\', '', true);
  SaveStringToFile(ExpandConstant('{app}')+'\game.ini', 'CifTreePath=\\' +  S + #13, true);
 

В файле получается такое содержание:
CifTreePath=\\CProgram Files\Пример\
 
Подскажите, как избавиться от буквы диска? То есть, что бы получалось \\Program Files, а не \\CProgram Files?

Всего записей: 9 | Зарегистр. 12-10-2007 | Отправлено: 23:27 09-08-2008
Victor_Dobrov



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Raf_SE - вот пример скрипта, который при отсутствии ключа выводит сообщение, похожее на подсказку Windows.
 
2Dem - попробуй так: StringChange(S, ExtractFileDrive(S), '')
 
P.S. если файл game.ini правильный, т.е содержит секции, то можно вместо SaveStringToFile использовать SetIniString.

Всего записей: 742 | Зарегистр. 27-09-2005 | Отправлено: 04:54 10-08-2008
2Dem



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Victor_Dobrov, спасибо большое!
И еще один вопросик. Как, в том же коде, получить только букву диска, на который происходит установка, без полного пути к папке?

Всего записей: 9 | Зарегистр. 12-10-2007 | Отправлено: 14:51 10-08-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