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

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

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

Widok (23-04-2007 18:02): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 105 106 107 108

   

haav



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

 
 
Это мощное средство для создания установочных пакетов [дистрибутивов] программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. Можно легко самим создавать диалоги, используя спец. дизайнер. И всё это абсолютно бесплатно! По сравнению с NullSoft [основной конкурент на бесплатной ниве] мне albel понравилась более интуитивно-понятная структура скрипта, простота в настройке.  
 
Последний релиз: 5.1.11 [1 Марта 2007 года]
История версий | скачать  
 
Русификатор от NightW0lf для версии 5.1.11  
Скачать | зеркало
 
Русская справка к версиям 5.0.xx
Скачать | зеркало || cкачать в .chm формате
И снова BagIra на высоте
 
Руководство по расширенным возможностям Inno Setup 5 [не для чайников] от Kindly
[3 версия]  
Скачать | зеркало
[4 версия]  
Скачать | зеркало
[5 версия]  
Скачать | зеркало
 
Inno Setup Extensions Knowledge Base  
Скачать | зеркало
 
Примечание: начиная с версии 5.1.10 в Inno Setup при использовании в инсталляторе фонового изображения формата BMP стало глючить возможность растягивания картинки на весь экран - чтобы это исправить добавьте этот код.
Если вы захотите использовать метод проверки внешнего файла через сумму MD5 [который описан в 5 версии руководства по программированию в Inno Setup] для запуска инсталлятора то вам понадобится калькулятор суммы MD5, калькулятор сумм MD5, SHA-256, CRC32. Если вы хотите узнать какие ключи в реестр вносит та или иная программа [или игра] то Вам понадобится RegShot.



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



ISTool
 
www.istool.org
 
Последний релиз: 5.1.8 [18 Октября 2006 года] New
Скачать | зеркало  
[как сказано в описании изменений, добавлена поддержка новых директив 5.1.8]
 
Русификатор
Скачать | зеркало


 
Распаковщик установок, сделанных с помощью Inno Setup. При распаковке извлекаются  ресурсы и скрипт установки [немного усечённый]. Возможно подключение к TotalCommander или FAR с помощью MultiArc плагинов.
 
Поддерживает распаковку инсталляторов, сделанных с помощью Inno Setup начиная с версии 3.0.0-beta по 5.1.10
 
Последний релиз: 0.19
Скачать | зеркало


 
Удобная оболочка для облегчения написания скриптов установки для INNO SETUP. Обладает некоторыми полезными функциями, которых нет ни у самого INNO, ни у ISTool.
 
Последний релиз: 5.1.6.9 [09 Июль 2006 года]
Скачать 4.2 мб | обновление 3.1 мб
 
Русификатор от GloThin
Скачать с сайта GloThin | Зеркало | Зеркало | зеркало
Пароль: ruboard
Примечание: офф. сайт косо отображается в Oper`е.
 
Новое название проекта на сайте, похоже произошла замена ScriptMaker на:
 
Inno Script Generator

Последний релиз: 1.02.5 [02 Апреля 2007 года]
Скачать | обновление
Примечание: обновление ставится только на Inno Setup Quickstartpack 5.1.11.

Всего записей: 67 | Зарегистр. 11-12-2001 | Отправлено: 15:23 09-10-2002 | Исправлено: NightW0lf, 15:16 15-04-2007
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
Ты меня немного не понял мне надо, переименновать кнопки только на странице "Установки"! (В руководстве от Kindly есть пример такой пример для страницы приветствия, НО у меня не получается таким способом сделать это на странице установки!)
Вот тот из руководства пример:

Код:
 
//Чтобы назначить собственный текст кнопок страниц мастера пишем следующую процедуру.
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpWelcome then
 begin
  If WizardForm.FindComponent('NextButton') is TButton
then
  TButton(WizardForm.FindComponent('NextButton')).Caption:='Вперед >>>';
  If WizardForm.FindComponent('CancelButton') is TButton
then
  TButton(WizardForm.FindComponent('CancelButton')).Caption:='Выход';
end;
end;
 

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 23:21 25-12-2006
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxdddca123 -- откровенно говоря, мне не совсем понятно, что у тебя получилось. А лазить по нескольким страницам и кропотливо восстанавливать скрипт, который есть у тебя, мне не очень хочется. Дай скрипт целиком, возможно и помогу.  
 
 
Добавлено:
NightW0lf -- я не совсем понимаю, что ты называешь страницей установки. wpInstalling ? Но там вроде видна только одна кнопка.
 
На всякий случай:
Код:
 
procedure CurPageChanged(CurPageID: Integer);  
begin  
if CurPageID = wpInstalling then
  begin
    WizardForm.CancelButton.Caption:= 'Отменить';
    WizardForm.NextButton.Caption:= 'Вперед';
    WizardForm.BackButton.Caption:= 'Назад';
  end;
end;  
 

Допустимые значения CurPageID есть в хелпе.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 23:27 25-12-2006
GRom V

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
 
function InitializeSetup(): Boolean;
var
  sn: String;
begin
  sn:= SerialNumberHDD(0,0);
  If GetMD5OfString(sn) <> '5218f6dd539ebf07d7ccc4cdd9f8d274' then
    begin
      MsgBox('Please Check Licence!', mbInformation, mb_OK);
      Exit;
    end;
Result:=True;
end;
 
Как провести проверку нескольких серийников - если хоть один совпадает то все ОК, т.е  инсталлятор запустится

Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 06:54 26-12-2006
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Пожалуйста, значит вот рисуется чек бокс лист, и в него вставляется список всех путей баз 1С, которые прописаны в реестре:
 
 NewCheckListBox1 := TNewCheckListBox.Create(Page);
  with NewCheckListBox1 do
  begin
    Parent := Page.Surface;
    if RegGetValueNames(HKEY_CURRENT_USER, 'Software\1C\1Cv7\7.7\Titles', Names) then
    begin
      SetArrayLength(Value,GetArrayLength(Names));
        for I := 0 to GetArrayLength(Names)-1 do
          begin
            RegQueryStringValue(HKEY_CURRENT_USER,  'Software\1C\1Cv7\7.7\Titles',  Names[I], Value[I]);
 
    NewCheckListBox1.AddCheckBox(Value[I], Names[I], 0, False, True, False, False, nil);
          end;
    end;
    Left := ScaleX(0);
    Top := ScaleY(56);
    Width := ScaleX(413);
    Height := ScaleY(170);
    TabOrder := 0;
  end;
 
Теперь мне нужно, что бы после нажатия кн Далее определялось, какие чек боксы отметил пользователь. Напомню, что значения Value[i] это массив путей (C:\Program Files\1Cv например). И затем, после того, как определились отмеченные чекбоксы, нужно, что бы инсталлятор распаковывал файлы поочерёдно в каждую дирректорию, которую отметил пользователь. Вот собсна и всё. Жду вашей помощи.

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 07:08 26-12-2006 | Исправлено: maxdddca123, 10:11 26-12-2006
QuickeneR

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kindly
Ну и в чем проблема? Прекрасно выдирается хоть фаром, хоть командной строкой
innounp -x -m kppp10-0.bin embedded\CompiledCode.bin

Всего записей: 1388 | Зарегистр. 02-02-2002 | Отправлено: 09:33 26-12-2006
GRom V

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Все - Понял:
function InitializeSetup(): Boolean;
var
  sn: String;
begin
  sn:= SerialNumberHDD(0,0);
  If (GetMD5OfString(sn) <> '5218f6dd539ebf07d7ccc4cdd9f8d274') and (GetMD5OfString(sn) <> '5218f6dd539ebf07d7ccc4cdd9f8d277') and (GetMD5OfString(sn) <> '5218f6dd539ebf07d7ccc4cdd9f8d270') then
    begin
      MsgBox('Please Check Licence!', mbInformation, mb_OK);
      Exit;
    end;
Result:=True;
end;

Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 10:09 26-12-2006
Genri

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

Цитата:
Все - Понял
--
Я бы сделал примерно так:

Код:
 
function InitializeSetup(): Boolean;
var
  sn: String;
begin
  sn:= GetMD5OfString(SerialNumberHDD(0,0));
  case sn of
    'd8578edf8458ce06fbc5bb76a58c5ca4' : Result:= True;
    'a152e841783914146e4bcd4f39100686' : Result:= True;
    'b427ebd39c845eb5417b7f7aaf1f9724' : Result:= True;
    '76419c58730d9f35de7ac538c2fd6737' : Result:= True;
    '8aef4d1f64d6dd481bec830faa0de8b2' : Result:= True;
  else Result:= False;
  end;
   
  if Not Result then
    begin
      MsgBox('Please Check Licence!', mbInformation, mb_OK);
      Exit;
    end;
end;
 

В таком виде нагляднее и менять легче.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 12:00 26-12-2006
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Ну а мне помочь ? Я же всё вам выложил . Или ещё что то требуется ?

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 13:53 26-12-2006 | Исправлено: maxdddca123, 15:17 26-12-2006
Kindly



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

Цитата:
Ну и в чем проблема? Прекрасно выдирается хоть фаром, хоть командной строкой  
innounp -x -m kppp10-0.bin embedded\CompiledCode.bin
Ну об таких параметрах не знал (embedded\CompiledCode.bin). Спасибо, вопрос закрыт.
 
Genri

Цитата:
Я бы порекомендовал, не использовать опубликованный в инете пароль.  

Мне в принципе по барабану. В будущем вообще запароливать не буду. Насчет новозашифрованного инсталлера, то мне вроде как пока нечего сказать.

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 18:18 26-12-2006
Frenzzy



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрые люди, очень нужна ваша помощь.
 
мне нужно создать дистрибутив с сетевой игрой, которая обновляется примерно рас в месяц для ~50 неопытных пользователей (ламеров)
сейчас в игру играет только ~30 чел, которые разобрались в достаточно сложной установке и обновлениях для игры.
 
по вышесказаным причинам (и по некоторым другим причинам), требуется создать масимально простой и понятный инсталлятор для очень популярной игры.
вот так я вижу простой и понятный инсталлятор для моего случая:
 
1. Инсталлятор должен быть одним exe файлом
2. Должен уметь скачивать с сетевого ftp сервера игровые файлы + к этому должен уметь устанавливать только изменившиеся файлы, а еще лучше чтоб он мог работать как патч (заменять только изменившиеся байты)
3. Чтоб этим же инсталлятором можно было бы также обновить игру (т.е. он просто скачает новые файлы и(или) перезапишет изменившиеся файлы - это конечно не обязательно, но было бы не плохо
4. При установке инсталлятор должен спросить NickName, который потом должен записаться в INI файл. (это тоже не обязательно)
 
ну вот собственно самые главные вещи я перечислил, если мне кто-нибудь поможет этому человеку будут благодарны ~80 малоопытных юзеров, а возможно и больше, т.к. моя сеть очень быстро растет и развивается
 
вот я начал наметывать инсталл:
 

Цитата:
[Setup]
AppName=Counter-Strike Source
AppVerName=Counter-Strike Source
DefaultDirName={sd}\Steam
DefaultGroupName=Steam
VersionInfoCompany=ORiNET Team
VersionInfoTextVersion=01.10.2006
VersionInfoVersion=1.0.0.31
WizardImageFile=left.bmp
WizardSmallImageFile=top.bmp
 
[Languages]
Name: ru; MessagesFile: "Russian.isl"
 
[INI]
Filename: "{app}\sbrev.ini"; Section: "SETTINGS"; Key: "AppsPath"; String: "{app}\SteamApps\SBReV"
Filename: "{app}\sbrev.ini"; Section: "SETTINGS"; Key: "SteamAppsPath"; String: "{app}\SteamApps"
Filename: "{app}\sbrev.ini"; Section: "SETTINGS"; Key: "UserName"; String: "Player"
Filename: "{app}\sbrev.ini"; Section: "SETTINGS"; Key: "AppsLanguage"; String: "Russian"
Filename: "{app}\sbrev.ini"; Section: "240_cstrike"; Key: "parameters"; String: "-console"
...и т.п.
 
[Files]
...все игровые файлы должны скачиваться с сетевого ftp сервера, и я не знаю как это сделать :'(
 
[Icons]
Name: "{group}\Steam Buster Revolution"; Filename: "{app}\sbrev.exe"; WorkingDir: "{app}"
Name: "{group}\Counter-Strike Source"; Filename: "{app}\sbrev.exe"; WorkingDir: "{app}"; Parameters: "-applaunch 240"; IconFilename: "{app}\counter-strike source.ico"
Name: "{group}\Uninstall"; Filename: "{uninstallexe}"; WorkingDir: "{app}"
Name: "{userdesktop}\SBReV"; Filename: "{app}\sbrev.exe"; WorkingDir: "{app}"
 
[Setup]
UninstallDisplayIcon=css.vsev.ico
SetupIconFile=css.vsev.ico

 
..возможно я бы и сам все сделал изучив справку, но она не запускается в Windows Vista :'(

Всего записей: 55 | Зарегистр. 16-07-2004 | Отправлено: 02:07 27-12-2006
GRom V

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

Цитата:
Я бы сделал примерно так:

 
Спасибо действительно удобно!
 
Добавлено:
Может кто нить подсказать как сделать backup реестра (нескольких веток) и сохранить в нужном месте в виде reg-файла?
Был бы очень признателен.

Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 02:50 27-12-2006
Denis_Kokyev



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

Цитата:
Может кто нить подсказать как сделать backup реестра (нескольких веток) и сохранить в нужном месте в виде reg-файла?  

 
Например я так делал:
 
[Run]
Filename: {sys}\dllcache\regedit.exe; Parameters: -EA {win}\cursors\beeline\backup.reg "HKEY_CURRENT_USER\Control Panel\Cursors"; WorkingDir: {sys}; StatusMsg: Внесение изменений в реестр...;


----------
Можно ответить на любой вопрос, если вопрос задан правильно.
Платон

Всего записей: 1074 | Зарегистр. 24-02-2003 | Отправлено: 03:33 27-12-2006
GRom V

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

Цитата:
Например я так делал:  
 
[Run]  
Filename: {sys}\dllcache\regedit.exe; Parameters: -EA {win}\cursors\beeline\backup.reg "HKEY_CURRENT_USER\Control Panel\Cursors"; WorkingDir: {sys}; StatusMsg: Внесение изменений в реестр...;

 
Я не так выразился -  мне нужно сделать backup реестра (нескольких веток)  и сохранить в нужном месте в виде reg-файла ПЕРЕД ИНСТАЛЛЯЦИЕЙ
Был бы признателен

Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 04:34 27-12-2006
Denis_Kokyev



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GRom V
Перед инсталяцией - процедурой Procedure BeforeInstall;
Вот пример:
 

Код:
 
[Code]
var
  ResultCode: Integer;
Procedure MyBeforeInstall;
Begin
  Exec(ExpandConstant('{pf}\QIP\Skins\{code:GetSkinName}\Smilies\DirRen.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
end;
 
[Files]
Source: "C:\123\Animated1\*.ini"; DestDir: "{app}"; BeforeInstall: MyBeforeInstall; Flags: ignoreversion; Components: first
 

 
Вот только как в один файл запихать несколько веток я не знаю.
Теоретически может как то так - copy all.reg+1.reg+2.reg+3.reg

----------
Можно ответить на любой вопрос, если вопрос задан правильно.
Платон

Всего записей: 1074 | Зарегистр. 24-02-2003 | Отправлено: 07:21 27-12-2006 | Исправлено: Denis_Kokyev, 07:33 27-12-2006
QuickeneR

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

Цитата:
..возможно я бы и сам все сделал изучив справку, но она не запускается в Windows Vista :'(

Скачай последнюю версию Inno Setup, там справка в chm.
 
На английском, естественно.

Всего записей: 1388 | Зарегистр. 02-02-2002 | Отправлено: 08:04 27-12-2006 | Исправлено: QuickeneR, 09:49 27-12-2006
GRom V

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

Цитата:
Код:  
[Code]  
var  
  ResultCode: Integer;  
Procedure MyBeforeInstall;  
Begin  
  Exec(ExpandConstant('{pf}\QIP\Skins\{code:GetSkinName}\Smilies\DirRen.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)  
end;  
 
[Files]  
Source: "C:\123\Animated1\*.ini"; DestDir: "{app}"; BeforeInstall: MyBeforeInstall; Flags: ignoreversion; Components: first

 
 
Чето я не вкурю - ну и где сдесь backup хоть какойто ветки реестра???

Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 08:13 27-12-2006
Frenzzy



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
К сожалению в англ. я не силен
 
а в англ. справке я не нашел как сделать, чтоб установочные файлы скачивались с ftp..
 
..походу мне никто не поможет :'(

Всего записей: 55 | Зарегистр. 16-07-2004 | Отправлено: 10:48 27-12-2006
omals

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

Цитата:
а в англ. справке я не нашел как сделать, чтоб установочные файлы скачивались с ftp..  

 
вот тут есть хороший скрипт
http://www.sherlocksoftware.org/page.php?id=50
просто инклудиш его в свой скрипт.
но я еще не проверял будет ли он работать если установлен фаервол.
 
также можно использовать  
http://www.istool.org/default.aspx/isx/isxdl
тоже нормально работает
 
и там и там есть примеры использования

Всего записей: 110 | Зарегистр. 04-12-2006 | Отправлено: 11:12 27-12-2006
Frenzzy



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
omals
Спасибо тебе Друг БОЛЬШОЕ! Пойду разбираться..

Всего записей: 55 | Зарегистр. 16-07-2004 | Отправлено: 11:45 27-12-2006
Genri

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

Цитата:
Ну а мне помочь ?
-- пока не могу найти красивого решения по установке в несколько папок. Экспериментировал со следующим:
Source: Files\*; DestDir: {code:CurrentDir}; Check: ChangeDir
Но вылезла любопытная фича:
1. Сначала запускается функция ChangeDir (выставляется в True и меняется путь)
2. Вызывается CurrentDir
... а дальше любопытно...
3. Так как путь изменился... опять вызывается Check: ChangeDir
4. Если False - файлы не копируются, а если True... опять вызывается CurrentDir
5. ... и так по кругу. Но из клинча, как ни странно, на каком-то шаге выходит.
 
Будет время - повожусь еще.
 


 
Немного разобрался. В конструкции:
 
Source: Files\*; DestDir: {code:CurrentDir}; Check: ChangeDir
Source: Files\*; DestDir: {code:CurrentDir}; Check: ChangeDir
 
1. Сначала вызывается Check: ChangeDir для каждого! файла в  Files\*
2. пункт 1 повторяется для второй строки (я так понимаю, вычисляются файлы которые удовлетворяют условию и строится список устанавливаемых файлов)
3. Опять вызывается Check: ChangeDir и если True - вызывается code:CurrentDir
4. пункт 3 повторяется для каждого! файла
5. пункты 3 и 4 повторяются для второй строки

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 11:57 27-12-2006 | Исправлено: Genri, 15:06 27-12-2006
   

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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru