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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sampron
Цитата:
за что отвечает свойство OnDblClick в компоненте TLabel ?
-- ну, судя по названию, за обработку двойного клика

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



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

Цитата:
У тебя в этом и предыдущем скрипте есть БАГ.

 
Я не знаю, как привязать форму к основной, и как иначе определить размер папки.
Function FolderSize(Dir: string): Cardinal;
begin
    SaveStringToFile(ExpandConstant('{tmp}\DirSize.vbs'),'WScript.CreateObject("WScript.Shell").RegWrite "HKCU\Environment\DirSize",CreateObject("Scripting.FileSystemObject").GetFolder("'+ Dir +'").Size/1048576,"REG_DWORD"', False);
    ShellExec('open','DirSize.vbs','',ExpandConstant('{tmp}'),sw_Hide,ewWaitUntilTerminated, errorCode); RegQueryDWordValue(HKCU,'Environment','DirSize',Result); RegDeleteValue(HKCU,'Environment','DirSize');
end;

Всего записей: 742 | Зарегистр. 27-09-2005 | Отправлено: 02:08 22-05-2007
Sampron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
Действительно, Спасибо!
Жаль что TPanel этого не понимает.

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 02:10 22-05-2007 | Исправлено: Sampron, 02:12 22-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sampron
Цитата:
Жаль что TPanel этого не понимает
-- ну почему же не понимает?  
 
TPanel = class(TCustomPanel)
.................................
.................................
  property OnDblClick: TNotifyEvent; read write;
end;
 

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

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
Сорри ошибочка не OnDblClick, а OnMouseDown и OnMouseUp.

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 02:33 22-05-2007
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что нужно поставить, чтоб инсталлятор не стал устанавливать, если ОС ниже XP SP2, случаем не это:

Код:
[Setup]
OnlyBelowVersion=0,5.1.2600sp2



Sero
 
Слушай, а можно, чтоб анимация (AW_IMPLODE или тому подобное) отображалась, если нажимаешь и на кнопку "Завершить" (окончания установки)? А то оно только анимируется, если жмешь на "Закрыть" или "Отмена".

Всего записей: 3700 | Зарегистр. 29-01-2005 | Отправлено: 02:37 22-05-2007 | Исправлено: boss911, 02:38 22-05-2007
fty



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

Цитата:
Возник вопрос по созданию резервной копии определенных файлов перед установкой.  
Сейчас я делаю так:  
 
Код:[Files]  
Source: "{app}\System\File1.ini"; DestDir: "{app}\System\Backup"; Flags: skipifsourcedoesntexist overwritereadonly ignoreversion  
Source: "{app}\System\File2.ini"; DestDir: "{app}\System\Backup"; Flags: skipifsourcedoesntexist overwritereadonly ignoreversion  
Source: "{app}\System\File3.ini"; DestDir: "{app}\System\Backup"; Flags: skipifsourcedoesntexist overwritereadonly ignoreversion  
 
И все.  
Как сделать, чтобы при повторном запуске инсталлятора, созданные ранее в папке Backup файлы не перезаписывались поверх, а сохранялись.  
Т.е.повторный бэкап изменял бы название создаваемых (или созданных) файлов (как вариант- изменял размещение в новую папку).

 
Нашел в старой ветке это:

Код:
[Setup]  
AppName=My Program  
AppVerName=My Program version 1.5  
DefaultDirName={pf}\My Program  
Compression=lzma  
SolidCompression=yes  
Uninstallable=no  
 
[Tasks]  
Name: arc; Description: "Create backup"  
 
[Files]  
Source: Files\*.*; DestDir: {app}; BeforeInstall: CreateBackup  
 
[Code]  
var  
Page: TInputDirWizardPage;  
ArcDir: String;  
 
procedure CreateBackup();  
var  
SrcFile, DestFile: string;  
begin  
if IsTaskSelected('arc') then  
begin  
// if Not DirExists(ArcDir) then CreateDir(ArcDir);  
ForceDirectories(ArcDir); // исправлено  
SrcFile:= AddBackslash(ExpandConstant('{app}')) + ExtractFileName(CurrentFileName);  
DestFile:= AddBackslash(ArcDir) + ExtractFileName(CurrentFileName);  
FileCopy(SrcFile, DestFile, False);  
end;  
end;  
 
function NextButtonClick(CurPageID: Integer): Boolean;  
begin  
If (CurPageID = Page.ID) then  
ArcDir := Page.Values[0];  
Result:= True;  
end;  
 
function ShouldSkipPage(PageID: Integer): Boolean;  
begin  
If (PageID = Page.ID) and  
(Not IsTaskSelected('arc')) then  
Result:= True  
else Result:= False;  
end;  
 
procedure InitializeWizard();  
begin  
Page:= CreateInputDirPage(wpSelectTasks, 'Select Backup Location',  
'Where should backup files be stored?',  
'To continue, click Next.' + #10#13#10#13 +  
'If you would like to select a different folder, click Browse.',  
False, 'Backup');  
Page.Add('');  
//Page.Values[0] := ExpandConstant('{sd}\Backup');  
Page.Values[0] := AddBackslash(ExpandConstant('{sd}\Backup')) +  
GetDateTimeString('yyyy/mm/dd hh:nn', '_', '.' ); // исправлено  
end;
 

 
Но нормально не получается- создается папка, как ей и положено, но файлы в эту папку не копируются!
Помогите, пожалуйста.

Всего записей: 132 | Зарегистр. 13-05-2006 | Отправлено: 09:20 22-05-2007
marat shakirov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в общем проблемя моя тут ужу упоминалась ))
Инсталлятор пишу немного странный и нестандартный
Порядок окон следующий - приветствие, потом если при запуске есть ключ "admin" страница выбора компонентов, далее выбор не папки а только диска, куда ставится программа и далее установка
 
Все эти страницы и проверки на достаточность места на диске сделаны, инсталлятор готов уже. Нужно отключить лишь одну вещь - после страницы компонентов всегда выскакивает сообщение о нехватке места на выбранном диске для выбранных компонентов, хотя путь установки задается позже. Как заблокировать это сообщение?  
 
Проект горит уже. Очень жду подсказок или хотя бы идей. Или придется писать страницу компонентов вручную?

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_Dobrov
Цитата:
Я не знаю, как привязать форму к основной, и как иначе определить размер папки
-- я бы пошел по другому пути - есть такая функция как CreateCustomPage. Думаю она тебе лучше подойдет.
 
А размер можно определить разными способами. Например так:

Код:
 
[Setup]
AppName=My Program
AppVerName=My Program ver.1.5
DefaultDirName={pf}\My Program
 
[Code]
function CalcDirSize(const fromDir, fileMask: string; SubDirsAllow: Boolean): Longword;
var
  FSR, DSR: TFindRec;
  FindResult: Boolean;
  APath: string;
begin
  APath := AddBackslash(fromDir);
  FindResult := FindFirst(APath + fileMask, FSR);
  try
    while FindResult do
    begin
      if FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then
        begin
            Result := Result+(FSR.SizeLow / 1000);
        end;
      FindResult := FindNext(FSR);
    end;
    FindResult := FindFirst(APath + '*.*', DSR);
    while FindResult and SubDirsAllow do
    begin
      if ((DSR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) and
        not ((DSR.Name = '.') or (DSR.Name = '..')) then
{Recursion} Result:= Result + CalcDirSize(APath + DSR.Name, fileMask, SubDirsAllow);
      FindResult := FindNext(DSR);
    end;
  finally
    FindClose(FSR);
    FindClose(DSR);
  end;
end;
 
procedure InitializeWizard;
var
  res: Longword;
begin
  res:= CalcDirSize('C:\Temp', '*', False);
  MsgBox(IntToStr(res)+ 'kb', mbInformation, MB_OK);
end;
 

Путь, маска файлов, с подкаталогами или без.
Маска с ограничениями (в старой ветке есть подробнее), ну а если кому надо точнее - считайте в байтах
 
marat shakirov -- получил. посмотрю.

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите, пожалуйста, как на кнопках управления музыкой отображались иконки?
Вот часть кода моего инсталлера:
 
Нажмите для отображения

Всего записей: 202 | Зарегистр. 29-01-2007 | Отправлено: 12:33 22-05-2007
iTASmania_Inc



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

Цитата:
iTASmania_Inc -- найди строку начинающуюся на:  
Caption:= ' ' + GetVideoCardName+ ............ и всю строку сюда

 
VideoCardPanel:=TPanel.Create(InfoForm);
with VideoCardPanel do begin
    Caption:=' Видеоадаптер'; Color:= System.Color; Parent:= InfoForm; ;
    Top:=RAMPanel.Top + System.Height - 2; Left:= System.Left; Width:= System.Width; Height:= System.Height; BevelOuter:= bvLowered;
with TPanel.Create(InfoForm) do begin        //Video
    Caption:= ' ' + GetVideoCardName+ ', '+ MorG(round(GetVidMemLocal/oneMB/64)*64,1);
    Top:=VideoCardPanel.Top; Left:= SystemNamePanel.Left; Width:= SystemNamePanel.Width; Height:= System.Height; BevelOuter:= bvLowered; Parent:= InfoForm; Alignment:=taLeftJustify; Color:= GreenColor;
    if round(GetVidMemLocal/oneMB/64)*64 < NeedVRAM then begin Caption:= Caption + ' (< ' + MorG(NeedVRAM,1)+ ')'; Color:= RedColor; NoPass:= 1; end;
    Caption:= Caption + ', '+ IntToStr(GetSystemMetrics(0)) + 'x' +IntToStr(GetSystemMetrics(1)); end;
end;
 
Я поглядел - лишних пробелов нет! Даже не знаю, где ошибка!

Всего записей: 443 | Зарегистр. 29-04-2007 | Отправлено: 12:58 22-05-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sampron
В последнем скине висты можешь пояснить как решить проблему с радиобатонами, что бы красиво смотрелись на странице лицензии ??

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

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxdddca123
В скине Vista радиобаттоны вроде нормально смотрятся.

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 13:06 22-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iTASmania_Inc -- Попробуй поменять:
Caption:= ' ' + GetVideoCardName+ .....
на:
Caption:= ' ' + Trim(GetVideoCardName)+ ........  
 
 
Добавлено:
hint! функция Trim() удаляет не только лидирующие и конечные пробелы, но и служебные символы

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



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

Цитата:
Слушай, а можно, чтоб анимация (AW_IMPLODE или тому подобное) отображалась, если нажимаешь и на кнопку "Завершить" (окончания установки)? А то оно только анимируется, если жмешь на "Закрыть" или "Отмена".

 
Вот добавь:

Код:
 
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result:=True;
if CurPageID=wpFinished then
AnimateWindow(WizardForm.Handle,1000,AW_IMPLODE);
end;

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 14:06 22-05-2007
marat shakirov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как задать вручную значение {app}?

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



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

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 14:42 22-05-2007
marat shakirov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sero
 
в разделе [Files] в строке  
Source: .........; DestDir: {app}\.......
 
Страница выбора диска установки у меня своя. Как выбранный путь на моей странице использовать при установке вместо {app}

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
marat shakirov
Выложи код!
 
Добавлено:
Точнее скрипт

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
marat shakirov
в разделе [Files] в строке  
Source: .........; DestDir: {app}\.......  
 
вместо:
DestDir: {app}\.....
 
пишешь:
DestDir: {code:MyPath}\.....
 
а в коде прописываешь функцию, которая будет возвращать требуемый путь. Например:
 
function MyPath(Param: String): String;
begin
  Result := ExpandConstant('{pf}');
end;
 
путь составляешь как тебе надо - исходя из выбранного диска и т.д.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 15:14 22-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