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

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

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

Widok (17-06-2008 18:16): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



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

Это мощное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. Можно создавать свои страницы, используя Inno Setup Form Designer.
По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта.  
 
Последний релиз: 5.2.3 [10.03.2008]
История версий | скачать | все сборки || Скачать Preprocessor | все сборки
 
Русификатор от NightW0lf для версии 5.2.0
Скачать | зеркало
 
Русская справка к версиям 5.0.xx
Скачать | зеркало || cкачать в .chm формате
И снова BagIra на высоте
 
Руководство по расширенным возможностям 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-файл в фоновом окне. Компактный режим установки. Деинсталляция неучтённых файлов. Экран справки/скриншота. Медиаплеер и многое другое...
 
Примечание: начиная с версии 5.1.10 в Inno Setup при использовании в инсталляторе фонового изображения формата BMP стало глючить возможность растягивания картинки на весь экран - чтобы исправить добавьте этот код.
Если необходимо использовать метод проверки внешнего файла через сумму MD5 (который описан в 5 версии руководства от Kindly) для запуска инсталлятора, то понадобится калькулятор хеша MD5, калькулятор сумм MD5, SHA-256, CRC32. Если требуется узнать, какие ключи в реестр вносит та или иная программа, то понадобится RegShot.


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


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

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

Удобная оболочка для облегчения написания скриптов установки для Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
 
Последний релиз: 1.0.3.1 [23.03.2008]
Скачать | обновление | изменения
Примечание: обновление ставится только на Inno Setup Quickstartpack 5.2.3.
 
Старая версия [ScriptMaker 5.1.6.9 от 09.07.2006]
Русификатор версии 5.1.5 от GloThin | зеркало | зеркало | зеркало пароль: ruboard

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

Длинные куски кода помещайте под тегом more, дабы дать возможность знатокам Inno Setup прочитать сам вопрос, а не пролистывать бесконечно длинные листинги скриптов в посте.

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 17:33 25-09-2007 | Исправлено: juvaforza, 13:39 24-05-2008
htuos

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

Всего записей: 335 | Зарегистр. 06-03-2008 | Отправлено: 22:36 03-06-2008
Kutsenko



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
2 dmimel
[Run]
Filename: {app}\speed.exe; WorkingDir: {app}; Description: Запустить Need for Speed Most Wanted; Flags: postinstall nowait
Я лично так делаю и у меня всё работает.

Всего записей: 80 | Зарегистр. 19-11-2007 | Отправлено: 22:47 03-06-2008
braunberg

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
htuos
Красивое решение. Хотя сам вопрос задавал не я, но все равно - спасибо!

Всего записей: 35 | Зарегистр. 22-01-2008 | Отправлено: 23:27 03-06-2008
Raf_SE



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А ктонить может объединить этот код с этим?

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

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SotM
 
Сейчас вроде получше стало, но теперь копирует только последний файл DATA.00x, никаких ошибок не выдает, но и не копирует первые файлы. к примеру если файлов DATA 5 штук, то копирует только последний, DATA.005 (если устанавливать не с диска). А если с диска устанавливать он так же не копирует, и просит диск с DATA.006 хотя их всего 5.  Вот сам код

Всего записей: 32 | Зарегистр. 27-05-2008 | Отправлено: 12:22 04-06-2008 | Исправлено: antifire, 12:23 04-06-2008
SotM



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

Код:
 
 if (Pos('/SP-', UpperCase(GetCmdTail)) > 0) then  
  begin  
    PostMessage(WizardForm.NextButton.Handle,WM_LBUTTONDOWN,0,0);  
    PostMessage(WizardForm.NextButton.Handle,WM_LBUTTONUP,0,0);  
  end;
 

можно просто вставить в начале InitializeWizard.
 
этот код:

Код:
 
 if (Pos('/SP-', UpperCase(GetCmdTail)) > 0) and  
    (CurPageID = wpSelectComponents) then  
    WizardForm.BackButton.Visible := False;
 

 
вот сюда:

Код:
 
with WizardForm do  
  begin
    if (Pos('/SP-', UpperCase(GetCmdTail)) > 0) and  
      (CurPageID = wpSelectComponents) then  
         BackButton.Visible := False;
 

 
Ты бы еще отступы побольше делал, а то одного пробела мало будет
 
antifire
То что он дальше продолжает цикл это наверное переменная i не то что-то содержит...
Да так трудно понять в чем проблема, когда нет этих самых бинарных файлов.

Всего записей: 965 | Зарегистр. 28-11-2006 | Отправлено: 12:35 04-06-2008 | Исправлено: SotM, 12:47 04-06-2008
Raf_SE



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

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

Всего записей: 1143 | Зарегистр. 06-08-2006 | Отправлено: 12:52 04-06-2008 | Исправлено: Raf_SE, 12:55 04-06-2008
SotM



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Raf_SE
Ууфф... что ж ты идешь постоянно таким сложными путями...
Естественно он будет ругаться на слово "WM_LBUTTONDOWN", потому что нет его... Я не знаю, где ты берешь такие примеры...
 
1. Идешь в шапку темы и качаешь "Руководство по расширенным возможностям Inno Setup 5 (не для чайников)".  
2. Ставишь его.
3. Смотришь различные примеры.
4. Там тебе будет по-русски написано:
 

Цитата:
Многие хотят и не могут убрать страницу приветствия, потому что она по умолчанию не отключается, но это ерунда.

 

Код:
 
procedure CurPageChanged(CurPageID: Integer);
begin
If CurPageID=wpWelcome then
begin
    WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
end;
 
//**************************************************//
//Альтернативный вариант
//procedure CurPageChanged(CurPageID: Integer);
//begin
//If CurPageID=wpWelcome then
//begin
//SendMessage(WizardForm.NEXTBUTTON.Handle, 513, 0, 0)
//SendMessage(WizardForm.NEXTBUTTON.Handle, 514, 0, 0)
//end;
//end;
//**************************************************//
 


Всего записей: 965 | Зарегистр. 28-11-2006 | Отправлено: 13:02 04-06-2008
Raf_SE



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

Цитата:
Естественно он будет ругаться на слово "WM_LBUTTONDOWN", потому что нет его... Я не знаю, где ты берешь такие примеры...  

Да ет я напутал, забыл в начало скрипта вставить  
const
  WM_LBUTTONDOWN = 513;
  WM_LBUTTONUP = 514;
НО всерано твой скрипт работает не так как нужно. Я использую улучшеный деинсталлятор для Inoo, у которого есть функции "Изменить", "Восстановить" и "Удалить", (называется "UninsHs"). Вобщем тот код, постом выше, взят именно из справки по этому деинсталлятору. Проблема в том, что страничку приветствия нужно отключать только когда ее запускает "UninsHs". Данный тобой пример почемуто этого не делает.
 
Код из справки UninsHs
 
P.S.
Руководство от Kindly у меня уже давно установленно.

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

Всего записей: 1143 | Зарегистр. 06-08-2006 | Отправлено: 13:16 04-06-2008 | Исправлено: Raf_SE, 13:18 04-06-2008
SotM



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Raf_SE
Дык, надо было тогда уже и ссылку на UninsHs дать. http://www.uninshs.com/index.php
Я не знаю как именно работает UninsHs, но судя по твоему коду из справки, процесс инсталяции (или же как я догадываюсь, деинсталяции) должен проходить именно так как ты написал ранее, т.е. пропуская страницу путём "нажатия" на кнопку Next.
Надо изначально давать больше информации о том, что нужно, куда нужно, кому нужно, и зачем это вообще нужно. А то так получается гадание на кофейной гуще...
 
Если ты следовал инструкции к UninsHs, то по идеи всё должно работать как надо.
 

Цитата:
НО всерано твой скрипт работает не так как нужно.

Ээээ, что значит не так как нужно?! Подробней излагай, пожалуйста, все необходимые данные для анализа.
 

Всего записей: 965 | Зарегистр. 28-11-2006 | Отправлено: 13:49 04-06-2008 | Исправлено: SotM, 13:59 04-06-2008
Raf_SE



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

Цитата:
Ээээ, что значит не так как нужно?! Подробней излагай, пожалуйста, все необходимые данные для анализа.  

Ну короче когда я нажимаю на кнопку "Изменить", в UninsHs, то он должен запускать инсталлятор, без странички приветствия и окна выбора папки установки. В данном тобой скрипте, отключается только страничка выбора папки установки.
Скорей всего коды объединены неправильно или хз. А может я чет нитуда вставил... Мож сам объединить все коды и дать их мне?
 
Мой код Код из справки UninsHs
 


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

Всего записей: 1143 | Зарегистр. 06-08-2006 | Отправлено: 14:06 04-06-2008 | Исправлено: Raf_SE, 14:31 04-06-2008
htuos

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

Всего записей: 335 | Зарегистр. 06-03-2008 | Отправлено: 14:06 04-06-2008
antifire

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SotM
 
Нет, дело не в бинарниках, проблема в цикле (Для примера можно создать любой бинарный файл, и от начала отсчитать 21 позицию и туда записать любое число).  
 
i:= Ord(str[1]);
for a:=1 to i do
  NewFile:='DATA.00' + IntToStr( a );
  if FileExists(ExpandConstant( '{src}\' ) + NewFile) then
     begin
        FileCopy(ExpandConstant( '{src}\')+ NewFile, ExpandConstant( '{app}\')  + NewFile, true);
     end
  else
     begin
        WaitForNewDisk(a);
     end;
 
(наример i=5 ) Если  я меняю здесь вторую строку на for a:=1 to i-1 do то копируется предпоследний файл DATA.  Получаеться чтo цикл работает до последнего значения 'a', и это копирует.

Всего записей: 32 | Зарегистр. 27-05-2008 | Отправлено: 14:14 04-06-2008
SotM



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

Цитата:
Если  я меняю здесь вторую строку на for a:=1 to i-1 do то копируется предпоследний файл DATA.  Получаеться чтo цикл работает до последнего значения 'a', и это копирует.

А, ну да, всё верно. Гы, чяво ж енто я этого не заметил. *бьюсь_ап_стену*
 
Raf_SE
Ну вроде вот так
сделал просто copy'n'paste, плюс добавил один if ... else.
 
htuos
Хе, неплохой у тебя код получился.

Всего записей: 965 | Зарегистр. 28-11-2006 | Отправлено: 14:36 04-06-2008 | Исправлено: SotM, 14:56 04-06-2008
antifire

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
htuos
 
Да, этот код работает. Очень благодарен.  
 
Есть только один вопрос: Копирование файлов DATA начинается после копирования основных файлов из секции [Files], то есть когда полоса процесса установки уже полная, и копирование происходит в фоновом режиме. Простые пользователи могут подумать что программа установки зависла. Можно ли вывести  небольшое окно с сообщением о копировании этих файлов, с процессом копирования  в процентах или даже с  полосой процесса копирования?

Всего записей: 32 | Зарегистр. 27-05-2008 | Отправлено: 14:57 04-06-2008
Raf_SE



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SotM
Уже лучше. Все ненужные страницы отключены, но кнопка "Назад" немного неправильно работает. Т.е. инсталлятор запускается (на страничке выбора компонентов), но благодаря кнопки "Назад" можно попасть на страничку приветствия, а этого не должно быть.

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

Всего записей: 1143 | Зарегистр. 06-08-2006 | Отправлено: 15:22 04-06-2008
Diawer

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sampron
Да, если больше способов поменять иконку в левом-верхнем углу нет, то твой способ пойдёт.
Но появилась идея подойти с другой стороны, в принципе действие
[Setup]  
SetupIconFile=icon_full.ico  
устраивает, но только если возможно, что бы не менялась иконка в Unins000.exe и сответственно в ярлыке Программы\Uninnstal MyProg или заменить на свою.

Всего записей: 180 | Зарегистр. 08-05-2007 | Отправлено: 15:27 04-06-2008
SotM



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Raf_SE
А где кнопка "Назад" появляется то?!
Там же в коде написано:
WizardForm.BackButton.Visible := False;
 
Так что я не знаю, где она может появится. Ты уже я думаю и сам сможешь разобраться как и куда добавить эту строчку кода
 
Diawer
Насколько я знаю есть такая команда:
 
UninstallDisplayIcon={app}\MyProg.exe,1
Но тут иконка берется только из exe файла.
Может тебе это и подойдет...

Всего записей: 965 | Зарегистр. 28-11-2006 | Отправлено: 15:32 04-06-2008 | Исправлено: SotM, 15:43 04-06-2008
Sampron

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

Цитата:
Да, если больше способов поменять иконку в левом-верхнем углу нет, то твой способ пойдёт.

На предыдущей странице есть получше способ

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 15:37 04-06-2008
Raf_SE



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

Цитата:
А где кнопка "Назад" появляется то?!  

Ну там где и обычно... Возле "Далее" и "Отмена".
 

Цитата:
Ты уже я думаю и сам сможешь разобраться как и куда добавить эту строчку кода

Ты о мне слишком высокого мнения
Пробывал вставить типо так:

Код:
procedure CurPageChanged(CurPageID: Integer);
var Pfunc : LongWord;
begin
 WizardForm.BackButton.Visible := False;
If CurPageID = wpInstalling then

Но тогда эта кнопка вобще исчезает (при запуске инсталляхи через UninsHs). А должна просто не вести на страничку приветствия. Т.е. на страничке выбора компонентов ее быть не должно, на всех других страничках она должна быть.

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

Всего записей: 1143 | Зарегистр. 06-08-2006 | Отправлено: 15:49 04-06-2008 | Исправлено: Raf_SE, 16:02 04-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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru