Это мощное бесплатное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта, но генерит на 200-300 кб больший инсталятор. На данный момент он конкурирует и даже превосходит многие коммерческие установщики по функциональности и стабильности.
Последние версии: Inno Setup QuickStart Pack (ansi)5.4.2 [17.03.2011] Скачать (1.7 Mb) Inno Setup QuickStart Pack (unicode)5.4.2 [17.03.2011] Скачать (2 Mb) Русификатор для Inno Setup версии 5.4.x от vadimsva Скачать
Расширения от ResTools Inno Setup Compiler5.4.1 - 5.4.2 build 110319 Скачать (2.71 Mb)|Зеркало (1.54 Mb) - убраны картинки для уменьшения размера архива Inno ISCmplr Setup5.4.2 build 110329 Скачать (1.6 Mb)|Зеркало Добавляет списку компонентов возможность сворачивать дочерние элементы. Содержит более удобный редактор, кроме того, компилятор имеет множество других возможностей и новых функций. На сайте автора также есть дополнительные библиотеки. Русификатор для Inno Setup Enhanced (Restools) версии 5.4.x (ansi и unicode) от vadimsva Скачать
Сборки Inno Setup: InnoUltra5.4.2 [28.04.2011] от Gnom Сборка инструментов для работы со скриптами InnoSetup. Содержит в себе все обновленные инструменты для работы, сборка постоянно обновляется. Полная версия|Облегченная версия|Update
Как много дел считались невозможными, пока они не были осуществлены. (Гай Плиний Секунд) Не занимаюсь подключением FreeArc/ISDone к чужим скриптам.
Дата: Воскресенье, 17.04.2011, 22:44 | Сообщение # 227
Админ
Администратор
Сообщений: 76
Статус: Offline
gerk Хм, скачал я твой скрипт. Ну и что это такое? #include "Modules\botva2.iss" #include "Modules\ProgressBar.iss" Если выкладываешь то выкладывай все файлы. В архиве папка Modules отсутствует. Рок моя честь, а моя честь моя жизнь.
Дата: Понедельник, 18.04.2011, 02:19 | Сообщение # 228
Пользователь
Сообщений: 17
Статус: Offline
У меня такой вопрос как можно сделать подобное мне нужно чтоб инно 1. нашел в определенном месте файл.ini и в нём вставил в определенные строчки нужную надпись
[Toolbar Wrapping Menu] Item, 69917 = Set wrapping, 0 Item, 69918 = Set wrapping, 1 Item, 69919 = Set wrapping, 2
2. чтоб инно нашел архив.zip далее в нём файл.ini и внёс туда тоже определённые строки в конец всего текста с условием что ini должен оставаться в zip-е ------------------------------------------------------------------------------------------------------------------------------------- ---- Shegorat, как там с моим вопросом
Многие вещи кажутся изысканными пока они происходят не с вами
procedure InitializeWizard(); begin IniCheckBox:= TCheckBox.Create(WizardForm); IniCheckBox.Left:= WizardForm.RunList.Left + 4; IniCheckBox.Top:= WizardForm.RunList.Top + 10; IniCheckBox.Width:= WizardForm.RunList.Width; IniCheckBox.Height:= 14 IniCheckBox.Caption:=' Изменить язык интерфейса на русский'; IniCheckBox.Parent:= WizardForm.FinishedPage; end;
procedure DeinitializeSetup(); begin if WizardForm.CurPageID = WpFinished then begin if IniCheckBox.Checked then SetIniString('Setting','Language', 'RU',ExpandConstant('{app}\Language.ini')) else SetIniString('Setting','Language', 'EN',ExpandConstant('{app}\Language.ini')) end; end;
Дата: Понедельник, 18.04.2011, 18:47 | Сообщение # 232
Энтузиаст
Проверенный
Сообщений: 110
Статус: Offline
Парни, нужна помощь. Как сделать обводку текста? (Например есть лайбл белого цвета, а обводка - черная [Смещение не подходит]) Кто не с нами, тот в запое...
Дата: Понедельник, 18.04.2011, 20:25 | Сообщение # 235
Проверенный
Сообщений: 67
Статус: Offline
Кто поможет реализовать вот такую штуку.
Выделен красным. На чем сделан этот инстал я знаю (скрипт имеется,но не полный). Может кто поможет сделать или уже у кого есть готовый пример для inno. И еще может кто встречал шрифт похожий на этот (что на скрине).
Дата: Понедельник, 18.04.2011, 20:30 | Сообщение # 237
Проверенный
Сообщений: 7
Статус: Offline
Edison007, вот есть пример он не мой автор его Shegorat за что ему большое спасибо
#include "botva2.iss" #define GameName "Call of Duty " #define GameVerName "Call of Duty" [Setup] AppName=Call of Duty AppVerName=Call of Duty DefaultDirName={pf}\Call of Duty
[CustomMessages] rus.Welcome=Приветствие rus.Welcome1=Вас приветствует Мастер установки игры%n"{#GameName}" rus.Welcome2=Программа установит игру "{#GameVerName}" на Ваш компьютер.%n%nРекомендуется закрыть антивирусные пакеты, а также все прочие приложения перед тем, как продолжить.
[Files] Source: Files\*; DestDir: {tmp}; Flags: dontcopy sortfilesbyextension nocompression [Code] type TLabelEx = record Massive: array [0..3] of TLabel; TextLabel: TLabel; end; var WelcomeLabel1, WelcomeLabel2: TLabelEx;
//Labels function LabelCreateEx(ALeft, ATop, AWidth, AHeight: Integer; FontName: String; FontSize: Integer; FontStyle: TFontStyles; FontColor, ShadowColor: TColor; AAutoSize, ATransparent, AWordWrap: Boolean; AAlignment: TAlignment; AParent: TWinControl; Text: String): TLabelEx; var i: integer; tmp: TLabelEx; begin for i:= 0 to 3 do begin tmp.Massive[i]:= TLabel.Create(WizardForm); with tmp.Massive[i] do begin SetBounds(ALeft, ATop, AWidth, AHeight); case i of 0: Left:=Left-1; 1: Left:=Left+1; 2: Top:= Top-1; 3: Top:= Top+1; end; AutoSize:= AAutoSize; Alignment:= AAlignment; Transparent:= ATransparent; WordWrap:= AWordWrap; Font.Name:= FontName; Font.Size:= FontSize; Font.Style:= FontStyle; Font.Color:= ShadowColor; Caption:= Text; Cursor:= crHand; Parent:= AParent; end; end;
procedure HideLabelEx(Line: TLabelEx); var i: integer; begin for i:=0 to 3 do begin Line.Massive[i].Hide; end; Line.TextLabel.Hide; end;
procedure ShowLabelEx(Line: TLabelEx); var i: integer; begin for i:=0 to 3 do begin Line.Massive[i].Show; end; Line.TextLabel.Show; end;
procedure SetLabelExCaption(var Line: TLabelEx; Text: String); var i: Integer; begin for i:=0 to 3 do begin Line.Massive[i].Caption:=Text end; Line.TextLabel.Caption:= Text; end;
procedure SetLabelExColor(var Line: TLabelEx; BackColor, TextColor: TColor); var i: Integer; begin for i:=0 to 3 do begin Line.Massive[i].Font.Color:= BackColor; end; Line.TextLabel.Font.Color:= TextColor; end;
procedure SetLabelExEvent(var Line: TlabelEx; ClickEvent: TNotifyEvent; MouseDown, MouseUp: TMouseEvent; MouseMove: TMouseMoveEvent); begin If ClickEvent <> nil then Line.TextLabel.OnClick:= ClickEvent; If MouseDown <> nil then Line.TextLabel.OnMouseDown:= MouseDown; If MouseUp <> nil then Line.TextLabel.OnMouseUp:= MouseUp; If MouseMove <> nil then Line.TextLabel.OnMouseMove:= MouseMove; end; //Labels
function InitializeSetup:boolean; begin if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll'); if not FileExists(ExpandConstant('{tmp}\innocallback.dll')) then ExtractTemporaryFile('innocallback.dll'); Result:=True; end;
procedure InitializeWizard; begin with WizardForm do begin InnerNotebook.Hide; OuterNotebook.Hide; end;
procedure CurPageChanged(CurPageID: Integer); begin HideLabelEx(WelcomeLabel1); HideLabelEx(WelcomeLabel2); case CurPageID of wpWelcome: begin ShowLabelEx(WelcomeLabel1); ShowLabelEx(WelcomeLabel2); end; end; end;
procedure DeinitializeSetup; begin gdipShutdown; end;
Дата: Понедельник, 18.04.2011, 20:54 | Сообщение # 238
Проверенный
Сообщений: 7
Статус: Offline
WinstAn,
Quote
Кто поможет реализовать вот такую штуку.
Старик, ты меня удивляешь, это ж такой заезженный пример
[Setup] AppName=My Program AppVerName=My Program v 1.5 DefaultDirName={pf}\My Program OutputDir=. Compression=lzma/ultra InternalCompressLevel=ultra SolidCompression=yes
[Code] function GetHardDriveFreeSpace(hdd: integer): Integer; external 'hwc_GetHardDriveFreeSpace@files:get_hw_caps.dll stdcall'; function GetHardDriveName(hdd: integer): PChar; external 'hwc_GetHardDriveName@files:get_hw_caps.dll stdcall'; function GetHardDriveTotalSpace(hdd: integer): Integer; external 'hwc_GetHardDriveTotalSpace@files:get_hw_caps.dll stdcall'; function GetHardDrivesCount(): Integer; external 'hwc_GetHardDrivesCount@files:get_hw_caps.dll stdcall';
const TB = 1024 * 1024; GB = 1024;
function TBorGBorMB(const FileSize: Extended): string; // функция определения ТБ, ГБ или МБ begin if FileSize/TB > 1 then Result:= Format('%.3f ТБ', [FileSize/TB]) else if FileSize/GB > 1 then Result:= Format('%.3f ГБ', [FileSize/GB]) else Result:= Format('%.3f MБ', [FileSize]); end;
function InitializeSetup(): Boolean; var i, count: Integer; msg: string; begin count:= GetHardDrivesCount(); msg:= 'Количество дисков: ' + IntToStr(count) + #13; for i:= 0 to count - 1 do msg:= msg + 'Диск ' + GetHardDriveName(i) + ' - Всего: ' + TBorGBorMB(GetHardDriveTotalSpace(i)) + ' - Свободно: ' + TBorGBorMB(GetHardDriveFreeSpace(i)) + #13; MsgBox(msg, mbInformation, MB_OK); end;
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Сообщение отредактировал YURSHAT - Понедельник, 18.04.2011, 20:55
Дата: Понедельник, 18.04.2011, 21:48 | Сообщение # 239
Пользователь
Сообщений: 26
Статус: Offline
Как можно заменить определённый символ в определённым смешением в заголовке лейбла на другой? Если кто не поймёт у меня такая ситуация: При создании лейбла заголовок один, при определённых действиях он меняется. Мне надо что бы проверялось равен ли 3-ий символ букве А, если да то заменял его на другой. Можно конечно чтобы заголовок лейбла был равен какой нибудь переменной string, а потом делать так StringChange(str,'А','Б'), но при этом заменяются все символы А.
Сообщение отредактировал DaRKdemoN - Понедельник, 18.04.2011, 22:03