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

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZavadS -- В том варианте, который указан выше, после деинсталляции остается папка программы, так как из нее не удалена длл-ка. Можно, конечно, удаление папки прописать отдельно, но это достаточно опасно, так как теоретически, пользователь может проинсталить программу в папку Windows со всеми вытекающими
 
Лучше использовать такой вариант

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

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Упрощу задачу, спрошу короче: я нашёл параметр, как мне определить, к какой секции он относится ? Или можеть есть какая нить ф-ция GetSectionName ???

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 15:39 25-05-2007 | Исправлено: maxdddca123, 15:40 25-05-2007
ZavadS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
Все работает. Первый вариант лучший, потому что когда я запускаю деинсталлятор и отказываюсь от удаления, Файл ISTask.dll остается на месте и я могу позже опять запустить деинсталлятор без ошибки. Со вторым вариантом так не сработает, потому нужно еще дописать код для удаления ISTask.dll. Как лучше можно удалить этот файл?
 
 
 
Добавлено:

Цитата:
Можно, конечно, удаление папки прописать отдельно, но это достаточно опасно, так как теоретически, пользователь может проинсталить программу в папку Windows со всеми вытекающими  

Я ISTask.dll прописываю в папку  Install_Rus а в процедуре на удаление меняю  
 

Цитата:
  MoveDir(ExpandConstant('{app}\Install_Rus\Backup\'), ExpandConstant('{app}'));
  RemoveDir(ExpandConstant('{app}\Install_Rus\Backup\'));
  RemoveDir(ExpandConstant('{app}\Install_Rus\'));
end;
end;

на
Цитата:
  MoveDir(ExpandConstant('{app}\Install_Rus\Backup\'), ExpandConstant('{app}'));
  RemoveDir(ExpandConstant('{app}\Install_Rus\Backup\'));
  DelTree(ExpandConstant('{app}\Install_Rus'), True, True, True);
end;
end;

но все равно папка Install_Rus с ISTask.dll не удаляется.  
 
 
 

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



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

Цитата:
как сделать WizardForm - "Always on top"

Никто не знает?

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 16:57 25-05-2007
Genri

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

Код:
 
var
  SectionNames: TArrayOfString;
  Asetup, Referent: string;
   
procedure GetSectionNames(const filename: string; var SectNames: TArrayOfString);
var
  i, SectionCount: integer;
  IniStrings: TArrayOfString;
begin
  LoadStringsFromFile(filename, IniStrings);
  for i:= 0 to GetArrayLength(IniStrings)-1 do
    begin
      if IniStrings[i][1] = '[' then
        begin
          SectionCount:= SectionCount + 1;
          SetArrayLength(SectNames, SectionCount);
          Delete(IniStrings[i], 1, 1);
          Delete(IniStrings[i], Length(IniStrings[i])-1, 2);
          SectNames[SectionCount - 1]:= IniStrings[i];
         end;
    end;
end;
 
procedure SetKeyID();
var
  login, KeyID: string;
  i: integer;
begin
  login:= GetIniString('User_1', 'Login', '', Asetup);
  KeyID:= GetIniString('User_1', 'KeyID', '', Asetup);
  GetSectionNames(Referent, SectionNames);
 
  for i:= 0 to GetArrayLength(SectionNames)-1 do
    begin
      if GetIniString(SectionNames[i], 'BoxName', '', Referent) = login then
        begin
          SetIniString(SectionNames[i], 'KeyID', KeyID, Referent);
        end;
    end;
end;
 
procedure Boxname();
begin
  Referent:= ExpandConstant('{app}\Referent_setup.ini');
  Asetup:= 'A:\Asetup.ini';
  GetSectionNames(Referent, SectionNames);
  SetKeyID();
end;  
Процедуру Boxname() вызывай когда тебе надо.

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



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

Цитата:
В данном случае, я думаю тебе, тебе без разницы - указывать билд или нет  

Ок, а если я укажу билд, тогда на что это повлияет и, чему помешает? Просто так толком и не вьехал, почему необязателен билд!

Всего записей: 3777 | Зарегистр. 29-01-2005 | Отправлено: 19:17 25-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boss911
Цитата:
так толком и не вьехал, почему необязателен билд
-- если укажешь, инсталлятор будет проверять номер билда, не укажешь - не будет. Но так как сомневаюсь что тебе попадется Windows XP SP2 билда отличного от 2600 - билд можно не указывать.
 
Почитай хелп, поэкспериментируй.

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



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

Цитата:
Почитай хелп, поэкспериментируй.

Так где эксперементировать то, у всех XP SP2.

Всего записей: 3777 | Зарегистр. 29-01-2005 | Отправлено: 23:19 25-05-2007
GloThin



Тобольский шашлычник
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
boss911
01:19 26-05-2007
Цитата:
Genri  
 
Цитата:Почитай хелп, поэкспериментируй.  
 
Так где экспериментировать то, у всех XP SP2.
 
 

мона  с ключами реестра эксперементировать...
Сохрани нормальное состояние для ХП СП2....
А потом подкоректируй...;)
Кличи реестра в энтом топике давно уж, и не раз проявилися...;)

----------
Все принципиальное-просто,а все простое-принципиально!
На каждого мудреца достаточно простоты!
Не изменишь существующее,не изменив себя!!

Всего записей: 709 | Зарегистр. 28-04-2004 | Отправлено: 23:49 25-05-2007 | Исправлено: GloThin, 23:52 25-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sero
Цитата:
как сделать WizardForm - "Always on top"
-- а ты уверен, что этого хочешь ? Ну попробуй:

Код:
 
[Setup]
AppName=My Program
AppVerName=My Program ver.1.5
DefaultDirName={pf}\My Program
 
[Code]
Const
  HWND_TOP = 0;
  HWND_TOPMOST = -1;
  HWND_NOTOPMOST = -2;
  SWP_NOSIZE = $1;
  SWP_NOMOVE = $2;
  SWP_NOZORDER = $4;
  SWP_NOREDRAW = $8;
  SWP_NOACTIVATE = $10;
  SWP_FRAMECHANGED = $20;
  SWP_SHOWWINDOW = $40;
  SWP_HIDEWINDOW = $80;
  SWP_NOCOPYBITS = $100;
  SWP_NOOWNERZORDER = $200;
  SWP_DRAWFRAME = SWP_FRAMECHANGED;
  SWP_NOREPOSITION = SWP_NOOWNERZORDER;
 
function SetWindowPos(hWnd, hWndInsertAfter,
               X, Y, cx, cy, wFlags: Longint):Boolean;
 external 'SetWindowPos@user32.dll stdcall';
 
procedure InitializeWizard;
begin
  SetWindowPos(WizardForm.Handle, HWND_TOPMOST, 0, 0, 0, 0,
       SWP_NOSIZE or SWP_NOMOVE or SWP_SHOWWINDOW);
end;  


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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZavadS
Цитата:
Как лучше можно удалить этот файл?
-- А попробуй такой вариант

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



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

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 11:03 26-05-2007
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
Такой вопрос - возможноли сделать так т.е. чтобы картинка была во всех окнах [и на всех страницах кроме привествия и завершения] инсталлятора, а то просто у меня пример как сделать только для страницы привествия и завершения.

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 11:45 26-05-2007
jedi81

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А возможно создать пакет инсталяции с кодом вопрос и ответ? То есть при инсталяции на один ПК программа выдает код вопрос, вводим код ответ. Но если запустить на другом ПК код вопрос будет другой и код ответ соотвественно тоже.

Всего записей: 186 | Зарегистр. 18-02-2006 | Отправлено: 13:15 26-05-2007
Yalos



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
соори если уже было...
ситуевина:
 
[Files]
Source: "D:\Docum\*"; DestDir: "{app}"; Flags: ignoreversion
 
в исходном каталоге (D:\Docum) лежит чуть меньше тысячи *.html , все они с атрибутами HIDEN и SYSTEM , и только один файл, главный без этих арибутов.  
(это сделано для того, чтобы пользователи пользовались икнкой на рабочем столе, а в случае, если забредут в папку где это все лежит, чтобы поднимали не что попало, а индекс).
при создании инсталлятора добавляется только главный файл, остальные игнорирутся...
создавать дополнительный файл, содержащий их не хочется, т.к. они регулярно меняются. как быть?

Всего записей: 5 | Зарегистр. 25-05-2007 | Отправлено: 16:03 26-05-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Спасибо за альтернативный вариант, я правда по другому сделал, но твой тоже пригодится. У меня ещё такой каверзный вопрос: мне необходимо сравнить 2 значения ини файла.  Они всегда одинаковы, за исключением одной буквы, общяя маска такова:
????[буква]??? (например 7700А000). Дак вот, если буква первого значения более старшая по алфавиу, то прерывать установку (или там цветом подсвечивать это у же я сам), если равны, то не устанавливать просто, а если буква из первого значения более ранняя по алфавиту чем у второго, то производить установку. Вот подскажи как можно осуществить сравнение букв по 'старшинству' ?
 
И сразу ещё вопрос: как изменить цвет надписи в  
MsgBox('Идентификация дискеты:'+ chr(13)+ 'Владелец:'+GetIniString('User_1', 'FName', '', 'A:\Asetup.ini')+ chr(13)+'ИД ключа:'+GetIniString('User_1', 'KeyID', '', 'A:\Asetup.ini')+ chr(13)+ 'Информация верна ?' , mbConfirmation, MB_YESNO)
Мне например надпись ИД ключа:'+GetIniString('User_1', 'KeyID', '', 'A:\Asetup.ini') надо сделать красным цвето. Это возможно ?
Если нет то можешь подсказать как сделать CreateCustomPage с выведением этих же параметров, вопроса о верности информации после нажатия далее и с цветом. Заранее благодарю Вас !

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxdddca123  
Ord(Copy(Text1,5,1)) > Ord(Copy(Text2,5,1))

Всего записей: 5 | Зарегистр. 25-05-2007 | Отправлено: 16:37 26-05-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Yalos
Спасибо.
Ещё бы с цветами разобраться....

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а мне бы с устновкой атрибутов на файлы...
 
[Run]
Filename: "attrib"; Parameters: " +S +H {app}\listing_*.html"
 
не работает. и не ругается. типа все в порядке.
 
------
 
цвет в стандартном MsgBox ???? очень сомневаюсь. только если свой прикрутишь

Всего записей: 5 | Зарегистр. 25-05-2007 | Отправлено: 17:03 26-05-2007 | Исправлено: Yalos, 17:12 26-05-2007
ZavadS



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

Цитата:
function NextButtonClick(CurPage: Integer): Boolean;
var
  sz:Integer;
  s:string;
    begin
  Result:=True;
 If CurPage=6 then
 //Проверка присутствия определенных файлов в папке с установленной программой на странице выбора папки назначения
  begin
 If (FileSearch('oodcnt.exe', ExpandConstant('{app}'))='')
then
  begin
  s:='Извините, в директории '+ExpandConstant('{app}')+'' #13 'не обнаружены файлы, подтверждающие подлинность программы.' #13#13 'Пожалуйста, выберите правильный путь для установки обновления.';
  MsgBox(s, mbError, mb_Ok);
  Result:= False
end
else
 //И проверка размера оригинальных файлов
  begin
 If FileSize(ExpandConstant('{app}')+'\oodcnt.exe', sz)
then
  begin
 If sz<>2545161  //Проверяемый размер в байтах
then
  begin
  s:='Размер установленого компонента oodcnt.exe не соответствует.' #13#13 'Для установки обновления требуются оригинальные файлы.';  
  MsgBox(s, mbCriticalError, mb_Ok);
  Result:= False
end;
end;
end;
end;
end;

 
Суть такова. После проверки  оригинального файла на размер в байтах(если размер не совпадает) выдается соответствующее сообщение. Так вот, мне нужно когда я нажимаю на клавишу OK, чтобы инсталлятор прервал свою работу и закрылся, без любых предупреждений.  
 
Добавлено:
Genri твой последний код отлично вписался в мой. благодарю за помощь.

Всего записей: 71 | Зарегистр. 04-01-2007 | Отправлено: 17:25 26-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-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru