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

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

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

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

   

Widok



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

Это мощное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. Можно легко самим создавать диалоги, используя спец. дизайнер. И всё это абсолютно бесплатно! По сравнению с NullSoft (основной конкурент на бесплатной ниве) мне albel понравилась более интуитивно-понятная структура скрипта, простота в настройке.  
 
Последний релиз: 5.2.0 [19 сентября 2007 года]
История версий | скачать || скачать Preprocessor
 
Русификатор от NightW0lf для версии 5.2.0
Скачать | зеркало
 
Английская справка для Inno Setup Preprocessor (ISPP) 5.0.xx
Скачать
 
Русская справка к версиям 5.0.xx
Скачать | зеркало || cкачать в .chm формате
И снова BagIra на высоте
 
Руководство по расширенным возможностям Inno Setup 5 (не для чайников) от Kindly
[3 версия]  
Скачать | зеркало
[4 версия]  
Скачать | зеркало
[5 версия]  
Скачать | зеркало
[5.1 версия]  
Скачать | зеркало
 
Inno Setup Extensions Knowledge Base  
Скачать | зеркало
 
Corona Skin & Check System Requirements от Victor_Dobrov
Скачать | Скриншот | Справка
Кроме визуального стиля Corona(WMP9) в инсталлятор по выбору пользователя добавляется: Проверка системы/минимальных требований. Шифрование. Деинсталляция неучтённых файлов. Подсчёт времени установки. Расширенный прогрессбар. Экран скриншота/справки. Screensaver, BMP или AVI-файл в фоновом окне. Проигрывание музыки в фоне и многое другое...
 
Примечание: начиная с версии 5.1.10 в Inno Setup при использовании в инсталляторе фонового изображения формата BMP стало глючить возможность растягивания картинки на весь экран - чтобы это исправить добавьте этот код.
Если вы захотите использовать метод проверки внешнего файла через сумму MD5 (который описан в 5 версии руководства по программированию в Inno Setup) для запуска инсталлятора то вам понадобится калькулятор хеша MD5, калькулятор сумм MD5, SHA-256, CRC32. Если вы хотите узнать какие ключи в реестр вносит та или иная программа (или игра) то Вам понадобится RegShot.



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



 
Последний релиз: 5.2.0 [21 сентября 2007 года]
Скачать | зеркало  
(как сказано в описании изменений, добавлена поддержка новых директив 5.2.0)
 
Русификатор
Скачать | зеркало


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


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

Последний релиз: 1.0.2.11 [7 Августа 2007 года]
Скачать | обновление | Изменения
Примечание: обновление ставится только на Inno Setup Quickstartpack 5.1.13.
 
Примечание для всех участников
 
Длинные куски кода помещайте под тегом [more], дабы дать возможность знатокам Inno Setup прочитать сам вопрос, а не пролистывать бесконечно длинные листинги скриптов в посте.

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 18:01 23-04-2007 | Исправлено: Nekt, 00:33 25-09-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Теперь выдаёт ошибку
    Runtime Error (at 35:1111):
    
    Access violation at address 7C913144. Write of address 00403755.
 
В строке box_name:=GetIniString(SectionNames[i],'BoxName','',ExpandConstant('{app}\') + 'Referent_Setup.ini')
Что ему опять не нравится ?
 

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 16:03 28-05-2007 | Исправлено: maxdddca123, 16:04 28-05-2007
Yalos



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот правильный вариант запуска внешнего приложения
 
[Run]
Filename: "attrib"; WorkingDir: "{app}"; Parameters: " +S +H listing_*.html"; Flags: runhidden
 
НЕ работает без WorkingDir даже если путь передается в параметрах, причем правильный путь(в смысле без пробелов, в формате 8,3)
 
а изначально задача стояла такая: необходимо добавить содержимое каталога в инсталлятор, причем в каталоге только ОДИН не скрытый файл, остальные скрытые, их Inno не видит. поэтому пришлось написать батник, который снимает атрибуты Скрытый,Системный , затем создает инсталлятор(который по окончании инсталляции ставит эти атрибуты на файлы) и вернуть атрибуты на место в исходном каталоге.
Жаль что не доступны эти функции на паскале - приходится запускать внешнее приложение.

Всего записей: 5 | Зарегистр. 25-05-2007 | Отправлено: 16:07 28-05-2007 | Исправлено: Yalos, 16:13 28-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightW0lf
Код:
 
procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpReady then
    begin
      WizardForm.ReadyMemo.Lines.Add('');
      if Page.SelectedValueIndex <> -1 then
        WizardForm.ReadyMemo.Lines.Add('Additional programms:');
      if Page.Values[0] then
        WizardForm.ReadyMemo.Lines.Add(#9 + 'Confirm registration');
      if Page.Values[1] then
        WizardForm.ReadyMemo.Lines.Add(#9 + 'Install Acrobat Reader');
    end;
end;  

 
maxdddca123 -- давай весь кусок.
 
Yalos  
[Run]  
Filename: "attrib"; Parameters: " +S +H ""{app}\listing_*.html"""  
так не работает ??
 

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 16:15 28-05-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
 Вот весь кусок
Тогда уж и подскажи сразу, как сюда вставить неактивную кнопку Далее ?? Конкретно внизу например у меня выделено место, где не работает. Посмотри плиз.

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 16:20 28-05-2007 | Исправлено: maxdddca123, 16:25 28-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Yalos
Цитата:
....и вернуть атрибуты на место в исходном каталоге.
-- а в секции [Files] не пробовал добавить Attribs: hidden system ?
 

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 16:22 28-05-2007
ZavadS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri В этом можешь мне помочь?

Цитата:
Как можно заменить надпись клавиши 'OK' на 'Далее', каторое зявляеться в сообщении, в этому коду.  
 
Цитата:function InitializeSetup(): Boolean;  
begin  
If RunTask('oodcnt.exe', false) then  
begin  
  if MsgBox('Программа установки русификатора обнаружила, что программа "O&O Defrag Professional Edition",'#13'запушена в данный момент. Рекомендуется закрыть программу перед тем, как продлить.'#13#13  
    'Нажмите «Далее», программа установки закроет и не сохранит измененные настройки в программе.'#13#13  
    'Нажмите «Отмена», чтобы выйти из программы установки русификатора.', mbInformation, MB_OkCancel) = idOk then  
begin  
  KillTask('oodcnt.exe');  
  Result := True;  
  end else  
  Exit;  
  end;  
  Result := True;  
 
 
 
А также можно ли вставить текс названия программы из [Setup] AppName (что-то подобное на это)  
 
Цитата:  if MsgBox('Программа установки русификатора обнаружила, что программа '+ExpandConstant('{AppName}')+','#13'запушена в данный момент. Рекомендуется закрыть программу перед тем, как продлить  
 
 
но так оно не работает

 

Всего записей: 69 | Зарегистр. 04-01-2007 | Отправлено: 16:25 28-05-2007
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
И еще:  
1. Как сделать чтобы здесь они тоже разбивались на группы.
2. И как сделать проверку выбранного элемента? т.е. доспустим выбран "Install Acrobat Reader" то в конце установки инсталлятор проверяет это условие если он выбран то тогда инсталируется.

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 16:27 28-05-2007 | Исправлено: NightW0lf, 16:28 28-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxdddca123 -- я так подозреваю, что у тебя IniStrings: TArrayOfString; объявлен два раза - локально в процедуре GetSectionNames и глобально. Соответственно в процедуре GetSectionNames заполняется локальный, а глобальный остается пустым и при обращении в функции NextButtonClick к IniStrings генерится ошибка, так как глобальный пустой.
Если так, то в процедуре GetSectionNames убери IniStrings: TArrayOfString;

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 16:48 28-05-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Неа, обьявил 1 раз глобально, повторений нет !  

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 16:56 28-05-2007 | Исправлено: maxdddca123, 21:42 28-05-2007
Yalos



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

Цитата:
 
Genri
[Run]  
Filename: "attrib"; Parameters: " +S +H ""{app}\listing_*.html"""  
так не работает ??  
 

 
не проверял, работает мой вариант, мне этого достаточно, я на него тоже немало времени убил.
 

Цитата:
 
а в секции [Files] не пробовал добавить Attribs: hidden system ?  
 

ну это ваще. пробовал конечно. но это не тот вариант - кроме html там еще лежит много чего, и если добавить  атрибуты, это распространится на все файлы, а не этого не надо.
а добавлять по частям.... можно конечно, но мне показалось проще поставить атрибуты по маске, чем раздувать секцию [Files]

Всего записей: 5 | Зарегистр. 25-05-2007 | Отправлено: 17:30 28-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxdddca123 -- в первом IniStrings: TArrayOfString; была в GetSectionNames, во втором уже нет. Пока ты будешь определяться, с каким кодом у тебя проблемы, я посмотрю вопросы других страждущих

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 17:31 28-05-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Я по твоему совету обьявил глобально что бы не думалось. Всё равно не работает...
Ведь проблема то не в этом скорее всего, раз и так и так не работает !

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 17:40 28-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZavadS
Цитата:
можно ли вставить текс названия программы из [Setup] AppName  
-- можно примерно так:
#define MyApp 'My Program'
[Setup]
AppName={#MyApp}
...........................
 
MsgBox('Программа установки русификатора обнаружила, что программа ' + ExpandConstant('{#MyApp}') + ' запушена в данный момент'..............
 

Цитата:
можно заменить надпись клавиши 'OK' на 'Далее'
-- просто ОК на Далее думаю нельзя, но слегка изменить можно:

Код:
 
function InitializeSetup(): Boolean;
var
  res: integer;
begin
Result:= True;
If RunTask('calc.exe', false) then
begin
  res:= 10;
  while (res = 10) and RunTask('calc.exe', false) do
    res:= MsgBox('Программа установки русификатора обнаружила, что программа ' + ExpandConstant('{#MyApp}') + ','#13'запушена в данный момент. Рекомендуется закрыть программу перед тем, как продлить.'#13#13
    'Завершите работу программы и нажмите «Повторить»'#13#13
    'Нажмите «Далее», программа установки закроет и не сохранит измененные настройки в программе.'#13#13
    'Нажмите «Отмена», чтобы выйти из программы установки русификатора.', mbInformation, 6);
   Case res of
     2: {Cancel}
      begin
        Result := False;
      end;
    11: {Continue}
      begin
        KillTask('calc.exe');
        Result := True;
      end;
   end;
  end;
end;  

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 18:41 28-05-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Заработало, нашёл 1 косячок, не буду говорить чей
Только уж помоги мне плиз с кнопкной далее а....
http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=483&limit=1&m=1#1
Там где внизу выделено жирным шрифтом, эта строчка не работает. Подскажи плиз как её заставить работать ???

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 18:58 28-05-2007 | Исправлено: maxdddca123, 18:59 28-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightW0lf
Цитата:
как сделать проверку выбранного элемента?
-- дык и в хелпе, и в моем примере есть проверка:
if Page.Values[0] then ... - для первого добавленного
if Page.Values[1] then ... - для второго добавленного и т.д.
 

Цитата:
Как сделать чтобы здесь они тоже разбивались на группы


Код:
 
var
  Page: TInputOptionWizardPage;
 
procedure InitializeWizard();
begin
  Page := CreateInputOptionPage(wpSelectTasks,
    'License Information', 'Are you a registered user?',
    'If you are a registered user, please check the box below, then click Next.',
     False, False);
 
  Page.AddEx('I am a registered user', 0, False);
  Page.AddEx('Install Acrobat Reader', 1, False);
  Page.AddEx('Install Documentation', 1, False);
end;  

 
 
 
 
Добавлено:
Yalos
Цитата:
кроме html там еще лежит много чего, и если добавить  атрибуты, это распространится на все файлы, а не этого не надо.  
а добавлять по частям.... можно конечно, но мне показалось проще поставить атрибуты по маске, чем раздувать секцию [Files]  
-- тебе виднее. Не видя скрипта спорить не буду. Но я бы реализовывал примерно так:
[Files]
Source: Files\listing_*.html; DestDir: {app}; Attribs: hidden system
Source: Files\*; DestDir: {app}; Excludes: "listing_*.html"
 
 
 
Добавлено:
maxdddca123
Цитата:
как сюда вставить неактивную кнопку Далее ??  
-- ну так она у тебя успешно становится неактивной. Только... на странице выбора папки  
Проверка if key < CurrentKeyID  и соответственно WizardForm.NextButton.Enabled:=false; у тебя прописана в функции NextButtonClick в разделе if CurPageID = wpSelectDir ... Т.е. на странице выбора папки кнопка становится неактивной, страница меняется на следующую.... и кнопка опять активна.
 
Нужные тебе проверки и соответственно WizardForm.NextButton.Enabled:=false; должно быть прописано в процедуре CurPageChanged (т.е. уже после смены страницы)

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 19:03 28-05-2007
DuhaLab



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

Цитата:
 
var  
  Page: TInputOptionWizardPage;  
  IsRegisteredUser: Boolean;  
 procedure InitializeWizard();  
begin  
  Page := CreateInputOptionPage(wpSelectTasks,  
    'License Information', 'Are you a registered user?',  
    'If you are a registered user, please check the box below, then click Next.',  
     False, False);  
 
  Page.Add('I am a registered user');  
  Page.Values[0] := False;  
end;  

 
запихать эти команды из [tasks]
 
Name: fixed; Description: Решение общих проблем:
Name: fixed/1; Description: Исправить ошибку page2chm v.2.7 RC1 с Opera v.9.10 и выше (проблема с сохранением страниц данным плагином)
Name: fixed/2; Description: Исправить кодировку русских символов в оболочке Windows (проблема с правильным отображением русских символов); Flags: unchecked
Name: tweak; Description: Небольшой твикер:
Name: tweak/find; Description: Использовать доступное поле множественного поиска или поле 'Поиск на странице' взамен диалогового окна 'Найти'; Flags: unchecked
Name: tweak/button; Description: Сокращать длинные названия кнопок и панелей в середине имени; Flags: unchecked
Name: tweak/IE; Description: Включить сохранение страниц на подобие IE (файл + папка)           Если вы используете page2chm галку ставить не рекомендуется; Flags: unchecked
Name: tweak/RU; Description: Включить рекомендуемую кодировку текста в браузере Opera; Flags: unchecked

Всего записей: 48 | Зарегистр. 26-12-2006 | Отправлено: 20:38 28-05-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Спасибо мегамозг ты наш !!! Всё получилось, шоп мы без тебя делали )))
Есть ещё лёгкий вопросик. Значт у меня в инсталляторе след файлы:
2 картинки бмп 150 и 10 кб, библиотека ISTask.dll, 66 кб, иконка 77 кб, итого в несжатом виде получаем 303 кб. Уровень сжатия везде стоит lzma\ultra. На выходе имею 553 кб !!!! Вопрос: откуда ??? Никак не могу понять.
 
Добавлено:
И ещё: наверно многие знают о так называемых билдах программы (цифры после версии), ну например при компиляции билд становится выше на опред число. Вот хотелось бы узнать, можно ли как то вставить в инно такие циферки, что бы при компиляции они автоматически увеличивались, типа у каждой инсталяшки свой уникальный билд. Наподобие времени компиляции смысл был бы
 
Добавлено:
И ещё: как вместо поиска конкретного файла
FileExists('A:\Asetup.ini')
осуществить поиск файла по маске  
A:\Asetup*.ini
где * любое кол-во любых символов.

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 21:41 28-05-2007 | Исправлено: maxdddca123, 22:06 28-05-2007
NightW0lf



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

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 22:35 28-05-2007
ZavadS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri Нужна и еще одна помощь на тему "как закрыть программу перед русификацией". А именно, нужно закрыть теперь системный процесс, который на данный момент работает (если это вообще возможно). Я имею
в виду программу дефрагментатор O&O Defrag. Предыдущий код (какой ты предоставил, за что тебе большое спасибо) работает, чтобы закрыть саму программу дефрагментатор, а системный процесс не закрывает. То есть что нужно. К началу русификации, нужно закрыть системный процесс, а в конце русификации, этот же системный процесс нужно опять запустить. И аналогично, при удалении русификатора, сначала закрыть, а затем опять запустить.  
 

Всего записей: 69 | Зарегистр. 04-01-2007 | Отправлено: 01:58 29-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DuhaLab
Цитата:
как теперь в этот код:  
 ......................................  
запихать эти команды из [tasks]
-- а в чем конкретно проблемы? Что именно у тебя не получается?
Код:
 
var
  Page: TInputOptionWizardPage;
  IsRegisteredUser: Boolean;
 procedure InitializeWizard();
begin
  Page := CreateInputOptionPage(wpSelectTasks,
    'License Information', 'Are you a registered user?',
    'If you are a registered user, please check the box below, then click Next.',
     False, False);
 
{0} Page.Add('Исправить ошибку page2chm v.2.7 RC1 с Opera v.9.10 и выше (проблема с сохранением страниц данным плагином)');
{1} Page.Add('Исправить кодировку русских символов в оболочке Windows (проблема с правильным отображением русских символов)');
{2} Page.Add('Использовать доступное поле множественного поиска или поле "Поиск на странице" взамен диалогового окна "Найти"');
{3} Page.Add('Сокращать длинные названия кнопок и панелей в середине имени');
{4} Page.Add('Включить сохранение страниц на подобие IE (файл + папка) Если вы используете page2chm галку ставить не рекомендуется');
{5} Page.Add('Включить рекомендуемую кодировку текста в браузере Opera');
   
    Page.Values[0] := True;
end;  

 
maxdddca123
Цитата:
На выходе имею 553 кб !!!! Вопрос: откуда ???
-- скомпили вообще без файлов, без картинок, без кода. Тогда поймешь откуда... Или думаешь, что 14 страниц визарда со стандартным оформлением ничего не занимают ? Хотя должен сказать, есть инсталляторы, которые занимают меньше.
И совершенно напрасно ставишь сжатие lzma\ultra. Поэкспериментируй с другими значениями и посмотри на размер.
 

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


Код:
 
#define BuildNum Int(ReadIni(SourcePath    + "\\BuildInfo.ini","Info","Build","0"))
#expr BuildNum = BuildNum + 1
#expr WriteIni( SourcePath    + "\\BuildInfo.ini","Info","Build", BuildNum )
 
[Setup]
AppName=My Program
AppVerName=My Program ver.1.5
DefaultDirName={pf}\My Program
VersionInfoVersion=2.04.22.{#BuildNum}
 

 

Цитата:
как вместо поиска конкретного файла FileExists('A:\Asetup.ini') осуществить поиск файла по маске  
-- посмотреть в хелпе описание функции FindFirst
 
ZavadS
Цитата:
нужно закрыть теперь системный процесс, который на данный момент работает  
-- а что подразумевается под "системным процессом" ? Запущенная служба (сервис) ?
 
 

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 10:29 29-05-2007
   

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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru