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

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SotM
 
Если запускать setup.exe с диска, там же должна быть и проверка на наличие. Проверяет, но не копирует в {app}, потом просит DATA.002 даже если он там есть. Вот подправил код

Всего записей: 32 | Зарегистр. 27-05-2008 | Отправлено: 16:57 03-06-2008 | Исправлено: antifire, 16:58 03-06-2008
SotM



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
antifire
Эх, молодо-зелено! Тут же сто раз уже говорили о такой чудо функции как: ExpandConstant.
 

Код:
 
if FileExists( '{src}\DiskNumber') then
меняем на:
if FileExists( ExpandConstant( '{src}\' ) + IntToStr( DiskNumber ) ) then
 
       if FileExists('{src}\NewFile') then  
          begin  
              FileCopy('{src}\NewFile','{app}\NewFile', true);
меняем на:
       if FileExists(ExpandConstant( '{src}\' ) + NewFile) then  
          begin  
              FileCopy(ExpandConstant( '{src}\' ) + NewFile, ExpandConstant( '{app}\' ) + NewFile, true);
 
 

 
Надеюсь смысл понял

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SotM
 
Да понял! Не знал, буду знать спасибо. ^_^  
 
Добавлено:
SotM
 
Ничего не изменилось, по прежнему установка встает на 'Вставьте диск с DATA.002', хотя он уже вставлен и файла DATA.001 в дириктории с программой нет, значит и копирования не происходит. Один момент подправил - FileExists( ExpandConstant( '{src}\' ) + IntToStr( DiskNumber ) )  - здесь IntToStr не нужен, DiskNumber - string.

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



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

Всего записей: 965 | Зарегистр. 28-11-2006 | Отправлено: 17:31 03-06-2008
antifire

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SotM
 
Так стоп. что изменилось, теперь копирует DATA.001 но  DATA.002... щас запишу на  диски, с диска и проверю.

Всего записей: 32 | Зарегистр. 27-05-2008 | Отправлено: 17:33 03-06-2008
dmimel



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
[Setup]
AppName=The Suffering
AppVerName=The Suffering
AppPublisher=Midway, Inc.
DefaultDirName={pf}\The Suffering
DefaultGroupName=The Suffering
OutputDir=C:\Documents and Settings\Димон\Мои документы
OutputBaseFilename=Setup
SetupIconFile=I:\The Suffering\Suffering.ico
Compression=lzma
SolidCompression=yes
 
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
 
[Files]
Source: "I:\The Suffering\SUFFERING.EXE"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\dbghelp.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\manual.rtf"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\mfc71.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\mfc71u.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\msvci70.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\msvcp71.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\msvcr71.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\protect.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\README.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\RERES.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\SSAPI.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\SSSCC.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\SSUS.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\SSVB.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\Suffering.ico"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\SUFFERING.EXE"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\Suffering.gdf"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\SUFFERING.RFL"; DestDir: "{app}"; Flags: ignoreversion
Source: "I:\The Suffering\common\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "I:\The Suffering\levels\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "I:\The Suffering\world common\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "I:\The Suffering\xvsh\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; ОТМЕТЬТЕ: Не используйте "Флажки: Проигнорировать версию" на любых общедоступных системных файлах
 
[Icons]
Name: "{group}\The Suffering"; Filename: "{app}\SUFFERING.EXE"
Name: "{group}\{cm:UninstallProgram,The Suffering}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\The Suffering"; Filename: "{app}\SUFFERING.EXE"; Tasks: desktopicon
 
[Run]
Filename: "{app}\SUFFERING.EXE"; Description: "{cm:LaunchProgram,The Suffering}"; Flags: nowait postinstall skipifsilent
 
Не запускается игра после инсталляции. В чем ошибка?
 
Добавлено:
Я делал скрипт в первый раз

Всего записей: 4 | Зарегистр. 07-07-2005 | Отправлено: 21:36 03-06-2008
braunberg

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dmimel
А ключи реестра там никакие не нужны?

Всего записей: 35 | Зарегистр. 22-01-2008 | Отправлено: 21:54 03-06-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
   

Страницы: 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