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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Спасибо за альтернативный вариант, я правда по другому сделал, но твой тоже пригодится. У меня ещё такой каверзный вопрос: мне необходимо сравнить 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
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ещё мелкий вопросик: что означает св-во Tag ? У кнопки например.

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Кто-нибудь поможет мне вот с этим вопросом:
 
Надо скрестить два кода:
 
1. Мой код в котором реализованны кнопки управления музыкой (без текстур) + те-же кнопки вместе с измененным окном  процесса установки: вот код
2. код, в котором реализованны текстуры этих кнопок: вот код
 
У меня не получается правильно убрать старый код с музыкой и вставить новый код с текстурами. И еще бы желательно добавить эти же кнопочки в измененное окно процесса инсталляции

Всего записей: 202 | Зарегистр. 29-01-2007 | Отправлено: 18:38 26-05-2007
marat shakirov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как можно удалить переменную окружения, создаваемую в разделе  
 
Добавлено:
как можно удалить переменные окружения, создаваемые мною в разделе [Registry] через описание ключей в реестре, при деинсталляции программы. Как ни пробовал играть флагами - ничего не получается. То же самое,ч то если задавать переменную через SET ...=..., то как удалить эту созданную переменную.

Всего записей: 14 | Зарегистр. 11-05-2007 | Отправлено: 00:14 27-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jedi81
Цитата:
возможно создать пакет инсталяции с кодом вопрос и ответ? То есть при инсталяции на один ПК программа выдает код вопрос, вводим код ответ. Но если запустить на другом ПК код вопрос будет другой и код ответ соотвественно тоже.
-- Возможно. Хотя лучше, если защиту обеспечивает сама программа, а не инсталлятор. Только не совсем понятно следующее: уникальный код для каждого ПК или уникальный код для каждого запуска инсталляции ? В первом случае, необходимо определить перечень устройств, по данным которых, будет генериться код. Во втором случае, можно использовать функцию Random.
Но в любом случае, это защита "от пионэров"
 
Yalos
Цитата:
в исходном каталоге ... лежит чуть меньше тысячи *.html , все они с атрибутами HIDEN и SYSTEM , и только один файл, главный без этих арибутов.  
.... при создании инсталлятора добавляется только главный файл, остальные игнорирутся... создавать дополнительный файл, содержащий их не хочется, т.к. они регулярно меняются. как быть?
-- не понял проблемы. Если при создании инсталлятора добавляется только главный файл, то зачем тебе остальные ? Или есть еще какая-то задача ?
 
maxdddca123
Цитата:
как можно осуществить сравнение букв по 'старшинству' ?
-- а как ты пробовал ? Я надеюсь, прежде чем задавать вопрос, ты попробовал... ну хотя бы самый тупой вариант:
  str1:= '7700A000';
  str2:= '7700B000';
  If str1 < str2 then
  .........................
И что ? Не работает ?
 
marat shakirov
Цитата:
как можно удалить переменную окружения, создаваемую в разделе
-- Через SET удаление через имя переменной и знак равенства без пробела в конце напр.: SET MUVAR=
А как ты создаешь через [Registry] ? Flags: uninsdeletevalue не помогает ?  Счас попробовал - при установке параметр создался, при удалении программы - удалился.
 
Добавлено:
Yalos
Цитата:
[Run]  
Filename: "attrib"; Parameters: " +S +H {app}\listing_*.html"  
не работает. и не ругается. типа все в порядке.
-- вероятно у тебя {app} с пробелами. Тогда нужны еще кавычки. Попробуй так:
[Run]
Filename: "attrib"; Parameters: " +S +H ""{app}\listing_*.html"""
 
 
Добавлено:
ZavadS
Цитата:
нужно когда я нажимаю на клавишу OK, чтобы инсталлятор прервал свою работу и закрылся, без любых предупреждений.
-- после MsgBox с сообщением о несоответствии размера добавь строку WizardForm.Close - это заставит инсталлятор прекратить работу. А чтобы избавиться от запроса подтверждения выхода, добавь в скрипт следующее:
Код:
 
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  Confirm:=False;
end;  

 

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 01:51 27-05-2007 | Исправлено: Genri, 02:22 27-05-2007
DuhaLab



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот есть крипт на создание резервной копии c последующим восстановленеим, но проблема в том, что файл восстанавливается, если удалять заменяемый файл. Но если не выбран чекбокс создания резервной копии - при удалении ничего не восстанавливается, а файл тот удаляется. Как сделать чтоб при отсутствии галки на резервировании при удалении нужный файл не удалялся, а при выбранном удалялся с восстановлением другого из резервной копии?
 
var
b_cb:boolean;
cb:TCheckBox;
StaticText: TNewStaticText;
 
procedure cdClick(Sender: TObject);
begin
b_cb:=cb.CHECKED;
end;
 
procedure CurPageChanged(CurPageID: Integer);
var
s1, s2:string;
 
 
begin
If CurPageID=wpSelectDir then
begin
cb:=TCheckBox.Create(WizardForm);
cb.Parent:=WizardForm;
cb.Width:=ScaleX(220);
cb.Left:=ScaleY(40);
cb.Top:=ScaleY(215);
cb.CAPTION:='Сохранить резервные копии файлов';
cb.ONCLICK:=@cdClick;
end else begin
If cb<>nil then begin
cb.Free;
cb:=nil;
If StaticText<>nil then
begin
StaticText.Free;
StaticText:=nil;
end;
end;
end;
 
 
If CurPageID=wpInstalling then begin
If b_cb then
s1:=ExpandConstant('{app}')+'\opera6.ini';
s2:=ExpandConstant('{app}')+'\Backup';
If FileExists(s1) then begin
CreateDir(s2);
FileCopy(s1, s2+'\opera6.ini', True);
end;
end;
end;
 
 
//Восстановление резервной копии
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var s3, s5, s6:string;
begin case CurUninstallStep of usPostUninstall:
begin
s5:=ExpandConstant('{app}')+'\Backup\opera6.ini';
s6:=ExpandConstant('{app}');
If FileExists(s5)then begin
CreateDir(s6);
FileCopy(s5, s6+'\opera6.ini', True);
end;
 
 
//Удаление папки
begin
s3:=ExpandConstant('{app}')+'\Backup';
If DirExists(s3) then begin
DelTree(ExpandConstant('{app}')+'\Backup', True, True, True);
end;end;end;end;

Всего записей: 48 | Зарегистр. 26-12-2006 | Отправлено: 08:27 27-05-2007 | Исправлено: DuhaLab, 08:31 27-05-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Да спасибо со сравнением всё нормально, а вот с цветами не подскажешь ? Вверху страницы описан вопрос.

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 09:50 27-05-2007 | Исправлено: maxdddca123, 10:02 27-05-2007
NightW0lf



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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Или вот вопрос, есть скрипт:
 
#include "SHFileOperation.iss"  
 
[Setup]  
AppName=My Program  
AppVerName=My Program version 1.5  
DefaultDirName={pf}\My Program  
DisableProgramGroupPage=yes  
 
[Files]  
Source: Files\*.*; DestDir: {app}; Flags: ignoreversion recursesubdirs; BeforeInstall: CreateBackup  
 
[Code]  
function MoveFile(const srcFile, destFile: PChar):Integer;  
external 'MoveFileA@kernel32.dll stdcall';  
 
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);  
begin  
  if CurUninstallStep = usPostUninstall then  
    begin  
      MoveDir(ExpandConstant('{app}\Backup\'),ExpandConstant('{app}'));  
      RemoveDir(ExpandConstant('{app}\Backup\'));  
    end;  
end;  
 
procedure CreateBackup;  
var  
  srcFile, destFile: string;  
  basePath, shortPath: string;  
begin  
  basePath:= ExpandConstant('{app}');  
  srcFile:= ExpandConstant(CurrentFileName);  
  shortPath:= srcFile;  
  StringChangeEx(shortPath, basePath, '', True);  
  destFile:= ExpandConstant('{app}\Backup') + shortPath;  
  ForceDirectories(ExtractFilePath(destFile));  
  MoveFile(PChar(srcFile), PChar(destFile));  
end;  
 
 
как сделать, чтоб резервировался файл, при парсинге ini файлов? т.к. BeforeInstall: CreateBackup не работает в данном случае (при установке вылетает ошибка)

Всего записей: 48 | Зарегистр. 26-12-2006 | Отправлено: 14:08 27-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DuhaLab
Цитата:
как сделать, чтоб резервировался файл, при парсинге ini файлов? т.к. BeforeInstall: CreateBackup не работает в данном случае
-- а что в данном случае подразумевается под "парсингом" ? Отработка секции [INI] или прописан свой парсер ? Если первое, то в таком виде работать не будет, так как используемая функция CurrentFileName валидна только в секции [Files] (решается передачей имени файла в качестве параметра). Если второе, то надо смотреть где и что вызывается.
 

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

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Как перенести неумещающийся текст на следующую строку ?
InfoNamePanel:=TPanel.Create(Page);
                     with InfoNamePanel do
                     begin
                     Parent:=Page.Surface;
                     Caption:='Вот тут когда набираешь очень много текста'+ chr(13)+'он всё равно не переносится на следующую, как это слделать ?';
                     Left:=AbonentNamePanel.Left;
                     Top:=Info.Top;
                     Width:=AbonentNamePanel.Width;
                     Height:=ScaleY(50);
                     BevelInner:=bvLowered;
                     TabOrder:=1;
                     Color:=12639424;
                     Alignment:=taLeftJustify;
                     end;
 
*********
Ещё вопрос: у кажд страницы есть page.ID А какой ID у страницы, которую я сам создал ? Как это определить ?

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



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

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 15:59 27-05-2007
Sero



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

Цитата:
Как перенести неумещающийся текст на следующую строку ?


Код:
 
Caption:='Вот тут когда набираешь очень много текста' #13 + 'он всё равно не переносится на следующую, как это слделать ?';

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

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

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

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxdddca123
Width:=497
Height:=28
Autosize:=False
WordWrap:=True

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 16:32 27-05-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sampron
Ругается на неизвестный идентификатор Autosize и WordWrap

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 16:37 27-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