Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Inno Setup. Прочие вопросы

Ответить
Настройки темы
Inno Setup. Прочие вопросы

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1210
Благодарности: 950


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 11-10-2019
Внимание!!!
Данная тема не предназначена для обсуждения скриптов! Для этого создана отдельная тема!

Скрипты Inno Setup. Помощь и советы





Описание

Inno Setup - это бесплатный инсталлятор для программ Windows. Впервые появился в 1997 году, Inno Setup сегодня, конкурирует и даже превосходит многие коммерческие инсталляторы по возможностям и стабильности.

Основные достоинства:
  • Поддержка всех версий Windows используемых сегодня: Windows 10, Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP, Windows Server 2003 и Windows 2000 (независимо от пакета обновлений);
  • Обширная поддержка инсталляций 64-битных приложений на 64-битных выпусках Windows. Также поддерживает x64-разрядные процессоры. (При использовании процессоров Itanium необходимо установить Service Pack);
  • Поддержка создания одного файла EXE, что облегчает установку вашей программы через сеть. Также поддерживается разбивка на диски;
  • Стандартный стиль интерфейса мастера Windows 2000/XP;
  • Настраиваемые типы установки, например: Полная (Full), Компактная (Compact), Выборочная (Custom);
  • Возможность создания деинсталлятора;
  • Установка файлов:
    Включает интегрированную поддержку сжатия файлов (bzip2 и 7-Zip LZMA/LZMA2). Инсталлятор может сравнивать версии файлов, заменять загруженные в память файлы, ведет подсчет общедоступных файлов, регистрирует DLL/OCX и библиотеки типов, устанавливает шрифты;
  • Создание ярлыков, включая меню Пуск и на Рабочем столе;
  • Работа с системным реестром и файлами *.ini;
  • Имеет встроенную поддержку скриптов на Паскале;
  • Поддерживает создание инсталляторов на различных языках;
  • Поддержкивает пароли и шифрование инсталляторов;
  • Поддерживается тихая установка и тихая деинсталляция, с помощью ключей командной строки;
  • Доступен полный исходный код (Borland Delphi 2.0-5.0 и 2009).

Основной бесплатный конкурент - NSIS.

Последняя стабильная версия - 6.0.3 [11.10.2019]. История версий. Все сборки.
Официальные сборки Inno Setup 6.0.3:
Редакторы iss-скриптов:
  • Расширенная версия Inno Setup от Restools

    Сайт: http://restools.hanzify.org/
    Скачать:Рекомендуется к применению из-за огромного количества компонентов, функций и процедур, удобного интерфейса, наличия отладчика и Form Designer. Собран на основе исходников Inno Setup 5.5.1.
    Инструкция по установке

    Инструкция по установке:
    1. Установите ispack-5.5.1.exe или ispack-5.5.1-unicode.exe (5.5.1 - номер официальной версии Inno Setup для последующего обновления расширенной версией);
    2. Скачайте Inno Setup Compiler, распакуйте;
    3. Из одноимённой папки, в соответствии с установленной версией (ANSI или Unicode), скопируйте два файла (Compil32.exe, Templates.dat) в каталог Inno Setup (по умолчанию: C:\Program Files\Inno Setup 5\). Появится сообщение с подтверждением о замене файла, нажимаем 'Да'.
      Примечание: если у вас Unicode версия, то дополнительно примените твик реестра (файл CourierNew.reg) из папки UnicodeFontLink и перезагрузите компьютер.
    4. Скачайте Inno ISCmplr Setup, распакуйте;
    5. Из одноимённой папки, в соответствии с установленной версией (InnoSetup_ANSI или InnoSetup_Unicode), из подпапки FullVCL скопируйте все файлы в каталог Inno Setup (по умолчанию: C:\Program Files\Inno Setup 5\). Появится сообщение с подтверждением о замене файла, нажимаем 'Да'.

  • Inno Script Studio от Kymoto Solutions

    Сайт: https://www.kymoto.org/
    Скачать: Inno Script Studio v2.3.0 [30.04.2018]
    Inno Script Studio является новым, интуитивно понятным, графическим интерфейсом для создания и компиляции скриптов Inno Setup.
Дополнительно


Распаковщики/декомпиляторы инсталляторов Inno Setup

Параметры командной строки инсталлятора (ссылка)

Отправлено: 00:25, 24-08-2009

 

Новый участник


Сообщения: 47
Благодарности: 5

Профиль | Отправить PM | Цитировать


Помогите пожалуйста разобраться. Когда в свой скрипт добавляю музыку, он прекрасно компилируется, но при запуске EXE, выдаёт вот такую ошибку:

Runtime Error (at 81:1179):
Access violation at address B0000001. Write of address B0000001.

Runtime Error (at 277:21):
Could not call proc.


Мой скрипт


#define GameName "My Programm"
#define PathGameName "My Programm"
#define GameEXE "MP.exe"
#define GameVersion "1.0"
#define InstallVersion "1.0"
#define RePacker "CaT"
#define NeedSize "7343"
#define NeedInstallSize "7353"
#define NeedMem "512"

;#define Components

#define Tasks

#define Music

;#define Splash

#define Russophobia


;#define records
;#define PrecompInside
;#define SrepInside
;#define facompress
;#define precomp "0.38"
;#define unrar /*
;#define XDelta /*
;#define PackZIP /*


[Setup]
AppName={#GameName}
AppPublisher=RePack by {#RePacker}
AppVerName={#GameName}
AppCopyright=© RePack by {#RePacker}
DefaultDirName={pf}\{#PathGameName}
DefaultGroupName={#PathGameName}
VersionInfoDescription=Installer - {#GameName}
VersionInfoTextVersion={#GameVersion}
VersionInfoVersion={#InstallVersion}
InternalCompressLevel=ultra64
SolidCompression=true
SetupIconFile="InstallFiles/MP.ico"
ShowTasksTreeLines=Yes
Compression=lzma/ultra64
OutputBaseFilename=MP
UninstallDisplayIcon={app}\{#GameEXE}
UninstallFilesDir={app}\Uninstall

;VersionInfoVersion=1.0
;VersionInfoCompany=

[Files]
Source: InstallFiles\*; DestDir: {tmp}; Flags: dontcopy
Source: dllFiles\*; DestDir: {tmp}; Flags: dontcopy

#ifdef Music
Source: Music\*; DestDir: {tmp}; Flags: dontcopy
#endif

#ifdef Splash
Source: Splash\*; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
#endif

Source: Include\russian.ini; DestDir: {tmp}; Flags: dontcopy
Source: Include\unarc.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\ISDone.dll; DestDir: {tmp}; Flags: dontcopy
#ifdef records
Source: Include\records.inf; DestDir: {tmp}; Flags: dontcopy
#endif

#ifdef PrecompInside
Source: Include\CLS-precomp.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\packjpg_dll.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\packjpg_dll1.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\zlib1.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef SrepInside
Source: Include\CLS-srep.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef facompress
Source: Include\facompress.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef precomp
#if precomp == "0.38"
Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.4"
Source: Include\precomp040.exe; DestDir: {tmp}; Flags: dontcopy
#else
#if precomp == "0.41"
Source: Include\precomp041.exe; DestDir: {tmp}; Flags: dontcopy
#else
Source: Include\precomp038.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp040.exe; DestDir: {tmp}; Flags: dontcopy
Source: Include\precomp041.exe; DestDir: {tmp}; Flags: dontcopy
#endif
#endif
#endif
#endif
#ifdef unrar
Source: Include\Unrar.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef XDelta
Source: Include\XDelta3.dll; DestDir: {tmp}; Flags: dontcopy
#endif
#ifdef PackZIP
Source: Include\7z.dll; DestDir: {tmp}; Flags: dontcopy
Source: Include\packZIP.exe; DestDir: {tmp}; Flags: dontcopy
#endif

[Registry]

#ifdef Components
[Types]
Name: full; Description: Ïîëíàÿ óñòàíîâêà; Flags: iscustom

[Components]
Name: InterfaceLanguage; Description: ßçûê Èíòåðôåéñà:; Flags: fixed; Types: Full;
Name: InterfaceLanguage\Russian; Description: Ðóññêèé; Flags: exclusive; ExtraDiskSpaceRequired: 100000000
Name: InterfaceLanguage\English; Description: Àíãëèéñêèé; Flags: exclusive; ExtraDiskSpaceRequired: 200000000
Name: SoundLanguage; Description: ßçûê Îçâó÷êè:; Flags: fixed; Types: Full;
Name: SoundLanguage\Russian; Description: Ðóññêèé; Flags: exclusive; ExtraDiskSpaceRequired: 500000000
Name: SoundLanguage\English; Description: Àíãëèéñêèé; Flags: exclusive; ExtraDiskSpaceRequired: 600000000
#endif

#ifdef Tasks
[Tasks]
Name: Icons; Description: {cm:Icons}; Flags: unchecked;
Name: Icons\DesktopIcon; Description: {cm:CreateDesktopIcon};
#ifdef GameEXE2
Name: Icons\DesktopIcon2; Description: {cm:CreateDesktopIcon2};
#endif
Name: Icons\QuickLaunchIcon; Description: {cm:CreateQuickLaunchIcon};
Name: Soft; Description: {cm:Soft};
Name: Soft\DirectX; Description: DirectX.;
Name: Soft\VCCheck; Description: Microsoft Visual C++ 2010.; Flags:
Name: Soft\PhysXCheck; Description: NVIDIA PhysX
#endif

[Run]
Filename: {src}\Soft\DirectX\DXSETUP.exe; WorkingDir: {src}\Soft\DirectX\; Flags: waituntilterminated; Tasks: Soft\DirectX; StatusMsg: Óñòàíîâêà DirectX...; Check: CheckError
Filename: {src}\Soft\Redist\vcredist_x86.exe; StatusMsg: Óñòàíàâëèâàåì Microsoft Visual C++ 2010 Redist...; Flags: skipifdoesntexist; Tasks: Soft\VCCheck; Components: ; Check: CheckError and not IsWin64;
Filename: {src}\Soft\Redist\vcredist_x64.exe; StatusMsg: Óñòàíàâëèâàåì Microsoft Visual C++ 2010 Redist...; Flags: skipifdoesntexist; Tasks: Soft\VCCheck; Components: ; Check: CheckError and IsWin64
Filename: {src}\Soft\PhysX\PhysX-9.12.1031-SystemSoftware.exe; Parameters: /qn; StatusMsg: Óñòàíàâëèâàåì NVIDIA PhysX...; Flags: skipifdoesntexist; Tasks: Soft\PhysXCheck; Check: CheckError

[UninstallDelete]
Type: filesandordirs; Name: {app}

[code]
#ifdef Splash
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
#endif
#include "Modules\Messages.iss"
#include "Modules\botva2.iss"
#include "Modules\BASS_Module.iss"
#include "Modules\PB.iss"
#include "Modules\botva2u.iss"
#include "Modules\Header.iss"
#include "Modules\ISDone.iss"

procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';

procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';

#ifdef Russophobia
const
A1='À';
Z1='ß';
A2='à';
Z2='ÿ';
X1='¸';
X2='¨';
function NextButtonClick(CurPageID: Integer): Boolean;
var i: integer;
c: char;
begin
Result := True;
if CurPageID = wpSelectDir then begin
for i:=1 to length(WizardForm.DirEdit.text) do begin
c:=WizardForm.DirEdit.text[i];
if (c>=A1)and(c<=Z1) or (c>=A2)and(c<=Z2) or (c=X1) or (c=X2) then begin
MsgBox( 'Â ïóòè óñòàíîâêè ïðèñóòñòâóþò ðóññêèå áóêâû, ÷òî íåäîïóñòèìî'#13#13'Ïîæàëóéñòà, ïîâòîðèòå ââîä.', mbError, mb_Ok);
Result := False ;
exit;
end;
end;
end;
end;
#endif
////////////////////////////////////////////////////////////Òåêñòóðà êíîïîê\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
procedure SetStateNewButtons;
begin
with WizardForm.BackButton do begin
BtnSetText(hBackBtn,PAnsiChar(Caption));
BtnSetVisibility(hBackBtn,Visible);
BtnSetEnabled(hBackBtn,Enabled);
end;
with WizardForm.NextButton do begin
BtnSetText(hNextBtn,PAnsiChar(Caption));
BtnSetVisibility(hNextBtn,Visible);
BtnSetEnabled(hNextBtn,Enabled);
end;
with WizardForm.CancelButton do begin
BtnSetText(hCancelBtn,PAnsiChar(Caption));
BtnSetVisibility(hCancelBtn,Visible);
BtnSetEnabled(hCancelBtn,Enabled);
end;
BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption));
BtnSetText(hGroupBrowseBtn,PAnsiChar(WizardForm.GroupBrowseButton.Caption));
end;

procedure WizardFormBtnClick(hBtn:HWND);
var
Btn:TButton;
begin
case hBtn of
hCancelBtn: Btn:=WizardForm.CancelButton;
hNextBtn: Btn:=WizardForm.NextButton;
hBackBtn: Btn:=WizardForm.BackButton;
hDirBrowseBtn: Btn:=WizardForm.DirBrowseButton;
hGroupBrowseBtn: Btn:=WizardForm.GroupBrowseButton;
end;
Btn.OnClick(Btn);
SetStateNewButtons;
BtnRefresh(hBtn);
end;

procedure WFBtnEnter(hBtn:HWND);
begin
end;

procedure ButtonsTextures;
begin
with WizardForm.BackButton do begin
hBackBtn:=BtnCreate(WizardForm.Handle,447,364,80,24,ExpandConstant('Btn.png'),0,False);
BtnSetEvent(hBackBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hBackBtn,WFButtonFont.Handle);
BtnSetFontColor(hBackBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hBackBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.NextButton do begin
hNextBtn:=BtnCreate(WizardForm.Handle,530,364,80,24,ExpandConstant('Btn.png'),1,False);
BtnSetEvent(hNextBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hNextBtn,WFButtonFont.Handle);
BtnSetFontColor(hNextBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hNextBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.CancelButton do begin
hCancelBtn:=BtnCreate(WizardForm.Handle,613,364,80,24,ExpandConstant('Btn.png'),1,False);
BtnSetEvent(hCancelBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hCancelBtn,WFButtonFont.Handle);
BtnSetFontColor(hCancelBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hCancelBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.DirBrowseButton do begin
hDirBrowseBtn:=BtnCreate(WizardForm.Handle,530,269,73,24,ExpandConstant('browse.png'),1,False);
BtnSetEvent(hDirBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hDirBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hDirBrowseBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hDirBrowseBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.GroupBrowseButton do begin
hGroupBrowseBtn:=BtnCreate(WizardForm.Handle,530,269,73,24,ExpandConstant('browse.png'),1,False);
BtnSetEvent(hGroupBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hGroupBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hGroupBrowseBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hGroupBrowseBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;
end;

/////////////////////////////////////////////////êîíåö\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
////////////////////////////////////////////////Âñòàâêà èçîáðàæåíèé\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

procedure CreateWizardForm;
var
n: Integer;
begin
with WizardForm do begin
InnerNotebook.Hide;
OuterNotebook.Hide;
Bevel.Hide;
ClientWidth:=ScaleX(700);
ClientHeight:=ScaleY(394);
DirEdit.OnChange:=@ObjectFunc;
GroupEdit.OnChange:= @ObjectFunc
OnMouseDown:=@LabelOnMouseDown;
BorderIcons := [];
Center;
end;

WFButtonFont:=TFont.Create;
with WFButtonFont do begin
Style:=[fsBold];
Size:=10;
Name:='Tahoma';
end;

BGImageStream := TMemoryStream.Create;
ExtractTemporaryFileToStream('BMPImage.bmp', BGImageStream);
BGImageStream.Position := 0;

BTNImageStream := TMemoryStream.Create;
ExtractTemporaryFileToStream('btnimage.bmp', BTNImageStream);
BTNImageStream.Position := 0;

BGImage := TBitmapImage.Create(WizardForm);
BGImage.Bitmap.LoadFromStream(BGImageStream);

BTNImage := TBitmapImage.Create(WizardForm);
BTNImage.Bitmap.LoadFromStream(BTNImageStream);

ImgLoad(WizardForm.Handle,ExpandConstant('MainImage.png'),0,0,0,0,False,True);

//////////////////////////////////////////---\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

/////////////////////////////////////////////////// ñò. Ãëàâíàÿ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
WelcomeLabel1:= CreateLabel(WizardForm, ScaleX(0), ScaleY(245), ScaleX(700), ScaleY(80), ExpandConstant('{cm:WelcomeLabel1}'), False);
LabelSetFont(WelcomeLabel1, 10, 'Tahoma', $FFFFFF, [fsBold]);
WelcomeLabel1.Alignment := taCenter;

WelcomeLabel2:= CreateLabel(WizardForm, ScaleX(0), ScaleY(275), ScaleX(700), ScaleY(150), ExpandConstant('{cm:WelcomeLabel2}'), False);
LabelSetFont(WelcomeLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]);
WelcomeLabel2.Alignment := taCenter;
//////////////////////////////////////////////////ñò.Âûáîð Äèðèêòîðèè\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
DirFolder:=ImgLoad(WizardForm.Handle,ExpandConstant('DirFolder.png'),ScaleX(106),ScaleY(210),ScaleX( 60),ScaleY(59),True,True);
DirEditImg:=ImgLoad(WizardForm.Handle,ExpandConstant('DirEditImg.png'),ScaleX(105),ScaleY(270),Scale X(420),ScaleY(22),True,True);
HDD:=ImgLoad(WizardForm.Handle,ExpandConstant('HDD.png'),ScaleX(105),ScaleY(297),ScaleX(57),ScaleY(5 7),True,True);

SelectDirLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(219), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectDirLabel}'), true);
LabelSetFont(SelectDirLabel, 9, 'Tahoma', $FFFFFF, [fsBold]);

SelectDirBrowseLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(238), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectDirBrowseLabel}'), true);
LabelSetFont(SelectDirBrowseLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
SelectDirBrowseLabel.Alignment := taLeftJustify;

DirEditLabel:= CreateLabel(WizardForm, ScaleX(110), ScaleY(272), ScaleX(450), ScaleY(20), '', false);
LabelSetFont(DirEditLabel, 10, 'Tahoma', $FFFFFF, [fsBold]);
DirEditLabel.Caption := MinimizePathName(WizardForm.DirEdit.Text, DirEditLabel.Font, DirEditLabel.Width);

TotalSpaceLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(295), ScaleX(0), ScaleY(0), ExpandConstant('{cm:TotalSpaceLabel}'), true);
LabelSetFont(TotalSpaceLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);

FreeSpaceLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(310), ScaleX(0), ScaleY(0), ExpandConstant('{cm:FreeSpaceLabel}'), true);
LabelSetFont(FreeSpaceLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);

InstallSpacelabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(325), ScaleX(0), ScaleY(0), ExpandConstant('{cm:InstallSpacelabel}'), true);
LabelSetFont(InstallSpacelabel, 8, 'Tahoma', $FFFFFF, [fsBold]);

NeedSpaceLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(340), ScaleX(0), ScaleY(0), ExpandConstant('{cm:NeedSpaceLabel}'), true);
LabelSetFont(NeedSpaceLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);

TotalSpaceLabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(295), ScaleX(0), ScaleY(0), '', true);
LabelSetFont(TotalSpaceLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]);
TotalSpaceLabel2.Alignment := taRightJustify;

FreeSpaceLabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(310), ScaleX(0), ScaleY(0), '', true);
LabelSetFont(FreeSpaceLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]);
FreeSpaceLabel2.Alignment := taRightJustify;

InstallSpacelabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(325), ScaleX(0), ScaleY(0), '', true);
LabelSetFont(InstallSpacelabel2, 8, 'Tahoma', $FFFFFF, [fsBold]);
InstallSpacelabel2.Alignment := taRightJustify;

NeedSpaceLabel2:= CreateLabel(WizardForm, ScaleX(520), ScaleY(340), ScaleX(0), ScaleY(0), '', true);
LabelSetFont(NeedSpaceLabel2, 8, 'Tahoma', $FFFFFF, [fsBold]);
NeedSpaceLabel2.Alignment := taRightJustify;

#ifdef Components
//////////////////////////////////////////ñò.Êîìïîíåíòîâ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
SelectComponentsLabel:= CreateLabel(WizardForm, ScaleX(345), ScaleY(208), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectComponentsLabel}'), true);
LabelSetFont(SelectComponentsLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
SelectComponentsLabel.Alignment := taLeftJustify;
with WizardForm.ComponentsList do begin
Parent:= WizardForm;
SetBounds(ScaleX(5), ScaleY(208), ScaleX(335), ScaleY(148));
Color:=$000000;
Font.Name:='Tahoma';
Font.Size:= 8;
Font.Color:=$FFFFFF;
for n:=0 to ItemCount-1 do begin
ItemFontStyle[n]:= [fsBold];
SubItemFontStyle[n]:= [fsBold];
end;
BorderWidth := (WizardForm.ComponentsList.Width-WizardForm.ComponentsList.ClientWidth) div 2;
LoadBGBmpFromBitmap(BGImage.Bitmap, WizardForm.ComponentsList.Left+BorderWidth, WizardForm.ComponentsList.Top+BorderWidth);
LoadBtnBmpFromBitmap(btnimage.Bitmap);
end;
#endif

/////////////////////////////////////////////////ñò.Âûáîð Ãðóïïû\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
GroupFolder:=ImgLoad(WizardForm.Handle,ExpandConstant('GroupFolder.png'),ScaleX(106),ScaleY(210),Sca leX(60),ScaleY(59),True,True);

SelectStartMenuFolderLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(219), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectStartMenuFolderLabel}'), true);
LabelSetFont(SelectStartMenuFolderLabel, 9, 'Tahoma', $FFFFFF, [fsBold]);
SelectStartMenuFolderLabel.Alignment := taLeftJustify;

SelectStartMenuFolderBrowseLabel:= CreateLabel(WizardForm, ScaleX(175), ScaleY(238), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectDirBrowseLabel}'), true);
LabelSetFont(SelectStartMenuFolderBrowseLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
SelectStartMenuFolderBrowseLabel.Alignment := taLeftJustify;

GroupEditLabel:= CreateLabel(WizardForm, ScaleX(110), ScaleY(272), ScaleX(450), ScaleY(20), WizardForm.GroupEdit.Text, false);
LabelSetFont(GroupEditLabel, 10, 'Tahoma', $FFFFFF, [fsBold]);

NoIconsCheck:=BtnCreate(WizardForm.Handle,ScaleX(110),ScaleY(305),ScaleX(13),ScaleY(13),ExpandConsta nt('CheckBox.png'),1,True);
BtnSetEvent(NoIconsCheck,BtnClickEventID,WrapBtnCallback(@NoIconsClick,1));
BtnSetCursor(NoIconsCheck,GetSysCursorHandle(32649));

NoIconsLabel:= CreateLabel(WizardForm, ScaleX(126), ScaleY(305), ScaleX(0), ScaleY(0), ExpandConstant('{cm:NoIconsCheck}'), true);
LabelSetFont(NoIconsLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
with NoIconsLabel do begin
Cursor := crHand;
OnClick:= @ObjectFunc;
end;
/////////////////////////////////////////////ñò.Çàäà÷ü\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#ifdef Tasks
SelectTasksLabel:= CreateLabel(WizardForm, ScaleX(345), ScaleY(208), ScaleX(0), ScaleY(0), ExpandConstant('{cm:SelectTasksLabel}'), true);
LabelSetFont(SelectTasksLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
SelectTasksLabel.Alignment := taLeftJustify;

with WizardForm.TasksList do begin
Parent:= WizardForm;
SetBounds(ScaleX(5), ScaleY(208), ScaleX(335), ScaleY(148));
Color:=$000000;
Font.Name:='Tahoma';
Font.Size:= 8;
Font.Color:=$FFFFFF;
BorderStyle := bsSingle;
//TreeViewStyle := True;
BorderWidth := (WizardForm.TasksList.Width-WizardForm.TasksList.ClientWidth) div 2;
LoadBGBmpFromBitmap(BGImage.Bitmap, WizardForm.TasksList.Left+BorderWidth, WizardForm.TasksList.Top+BorderWidth);
LoadBtnBmpFromBitmap(btnimage.Bitmap);
end;
#endif

/////////////////////////////////////////////////ñò.Èòîãî\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
BGImageStream.position:=0;

ReadyLabel:= CreateLabel(WizardForm, ScaleX(345), ScaleY(208), ScaleX(0), ScaleY(0), ExpandConstant('{cm:ReadyLabel}'), true);
LabelSetFont(ReadyLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
ReadyLabel.Alignment := taLeftJustify;

ReadyPanel := TPanel.Create(WizardForm);
with ReadyPanel do begin
Parent := WizardForm;
SetBounds(ScaleX(5), ScaleY(208), ScaleX(335), ScaleY(148));
BorderStyle := bsSingle;
end;

ReadyBitmap := TBitmapImage.Create(WizardForm);
with ReadyBitmap do begin
Parent := ReadyPanel;
SetBounds(ScaleX(-7), ScaleY(-210), ScaleX(700), ScaleY(394));
Bitmap.LoadFromStream(BGImageStream);
end;

ReadyScrollBar := TScrollBar.Create(WizardForm);
with ReadyScrollBar do begin
Parent := ReadyPanel;
SetBounds(ScaleX(315), ScaleY(0), ScaleX(144), ScaleY(16));
Kind := sbVertical;
OnScroll:=@ScrollText3Scroll;
end;

ReadyPanelLabel := TLabel.Create(WizardForm);
with ReadyPanelLabel do begin
Parent := ReadyPanel;
WordWrap := true;
Transparent:=true;
Font.Name:='Tahoma';
Font.Size:= 8;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold];
SetBounds(ScaleX(5), ScaleY(5), ScaleX(325), ScaleY(130));
Caption := WizardForm.ReadyMemo.Lines.Text;
end;
////////////////////////////////////////////ñò.Óñòàíîâêà\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

IsDoneAddComponents

InstallingLabel:= CreateLabel(WizardForm, ScaleX(105), ScaleY(220), ScaleX(0), ScaleY(0), ExpandConstant('{cm:InstallingLabel}'), true);
LabelSetFont(InstallingLabel, 9, 'Tahoma', $FFFFFF, [fsBold]);

StatusLabel:= CreateLabel(WizardForm, ScaleX(105), ScaleY(240), ScaleX(0), ScaleY(0), ExpandConstant('{cm:Extracted}'), true);
LabelSetFont(StatusLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);

/////////////////////////////////////////////ñò.Êîíåö\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

FinishedHeadingLabel:= CreateLabel(WizardForm, ScaleX(0), ScaleY(245), ScaleX(700), ScaleY(80), ExpandConstant('{cm:FinishedHeadingLabel}'), false);
LabelSetFont(FinishedHeadingLabel, 10, 'Tahoma', $FFFFFF, [fsBold]);
FinishedHeadingLabel.Alignment := taCenter;

FinishedLabel:= CreateLabel(WizardForm, ScaleX(0), ScaleY(275), ScaleX(700), ScaleY(150), ExpandConstant('{cm:FinishedLabel}'), false);
LabelSetFont(FinishedLabel, 8, 'Tahoma', $FFFFFF, [fsBold]);
FinishedLabel.Alignment := taCenter;
end;



procedure HideComponents;
begin;
WelcomeLabel1.Hide;
WelcomeLabel2.Hide;
SelectDirLabel.Hide;
SelectDirBrowseLabel.Hide;
#ifdef Components
SelectComponentsLabel.Hide;
WizardForm.ComponentsList.Hide;
#endif
#ifdef Tasks
SelectTasksLabel.Hide;
WizardForm.TasksList.Hide;
#endif
SelectStartMenuFolderLabel.Hide;
SelectStartMenuFolderBrowseLabel.Hide;
DirEditLabel.Hide;
TotalSpaceLabel.Hide;
FreeSpaceLabel.Hide;
InstallSpacelabel.Hide;
NeedSpaceLabel.Hide;
TotalSpaceLabel2.Hide;
FreeSpaceLabel2.Hide;
InstallSpacelabel2.Hide;
NeedSpaceLabel2.Hide;
GroupEditLabel.Hide;
NoIconsLabel.Hide;
InstallingLabel.Hide;
StatusLabel.Hide;
FinishedHeadingLabel.Hide;
FinishedLabel.Hide;
IMGSetVisibility(DirFolder,False);
IMGSetVisibility(DirEditImg,False);
IMGSetVisibility(HDD,False);
IMGSetVisibility(GroupFolder,False);
BtnSetVisibility(hDirBrowseBtn,False);
BtnSetVisibility(hGroupBrowseBtn,False);
BtnSetVisibility(NoIconsCheck,False);
ReadyPanel.Hide;
ReadyBitmap.Hide;
ReadyScrollBar.Hide;
ReadyPanelLabel.Hide;
ReadyLabel.Hide;
IsDoneHide;
end;

procedure ShowComponents(CurPageID: Integer);
begin
case CurPageID of
wpWelcome: begin
WelcomeLabel1.Show;
WelcomeLabel2.Show;
end;

wpSelectDir: begin
SelectDirLabel.Show;
SelectDirBrowseLabel.Show;
DirEditLabel.Show;
TotalSpaceLabel.Show;
FreeSpaceLabel.Show;
InstallSpacelabel.Show;
NeedSpaceLabel.Show
TotalSpaceLabel2.Show;
FreeSpaceLabel2.Show;
InstallSpacelabel2.Show;
NeedSpaceLabel2.Show;
IMGSetVisibility(DirFolder,True);
IMGSetVisibility(DirEditImg,True);
IMGSetVisibility(HDD,True);
BtnSetVisibility(hDirBrowseBtn,True);
end;

#ifdef Components
wpSelectComponents: begin
SelectComponentsLabel.Show;
WizardForm.ComponentsList.Show;
end;
#endif

wpSelectProgramGroup: begin
SelectStartMenuFolderLabel.Show;
SelectStartMenuFolderBrowseLabel.Show;
GroupEditLabel.Show;
NoIconsLabel.Show;
IMGSetVisibility(DirEditImg,True);
IMGSetVisibility(GroupFolder,True);
BtnSetVisibility(NoIconsCheck,True);
BtnSetVisibility(hGroupBrowseBtn,True);
end;

#ifdef Tasks
wpSelectTasks: begin
SelectTasksLabel.Show;
WizardForm.TasksList.Show;
end;
#endif

wpReady: begin
ReadyBitmap.Show;
ReadyScrollBar.Show;
ReadyPanelLabel.Show;
ReadyPanel.Show;
ReadyLabel.Show;
ReadyPanelLabel.Caption := WizardForm.ReadyMemo.Lines.Text;
end;

wpInstalling: begin
InstallingLabel.Show;
StatusLabel.Show;
IsDoneShow();
end;

wpFinished: begin
FinishedHeadingLabel.Show;
FinishedLabel.Show;
LabelTime3.Show;
end;
end;
end;

function UninstPBProc(h:hWnd;Msg,wParam,lParam:Longint):Longint;
var
pr,i1,i2:Extended;
p:string;
begin
if Msg=$2 then SetWindowLong(h,-4,UninstPBOldProc);
Result:=CallWindowProc(UninstPBOldProc,h,Msg,wParam,lParam);
if (Msg=$402) and (UninstallProgressForm.ProgressBar.Position>UninstallProgressForm.ProgressBar.Min) then begin
i1:=UninstallProgressForm.ProgressBar.Position-UninstallProgressForm.ProgressBar.Min;
i2:=UninstallProgressForm.ProgressBar.Max-UninstallProgressForm.ProgressBar.Min;
pr:=(i1*100)/i2;
p:=+Format('%f',[pr])+'%';
UnLabelPct.Caption:=p;
StringChange(p,',','.');
ImgPBSetPositionUn(UninstPB,pr);
ImgApplyChangesBotvaU(UninstallProgressForm.Handle);
end;
end;


procedure CurPageChanged(CurPageID: Integer);
begin
HideComponents;
ShowComponents(CurPageID);
WizardForm.NextButton.Enabled:= True;
if CurPageID = wpSelectDir then
ObjectFunc(WizardForm.DirEdit);
if (CurPageID = wpFinished) and ISDoneError then begin
LabelTime3.Hide;
WizardForm.Caption:= ExpandConstant('{cm:Error}');
FinishedLabel.Font.Color:= $0000FF;
FinishedHeadingLabel.Caption:= ExpandConstant('{cm:ErrorFinishedHeadingLabel}');
FinishedLabel.Caption:= ExpandConstant('{cm:ErrorFinishedLabel}');
DelTree(ExpandConstant('{app}'), True, True, True);
end;
SetStateNewButtons;
ImgApplyChanges(WizardForm.Handle);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
IsDoneUnpack(CurStep);
end;


procedure InitializeWizard;
begin
#ifdef Music
ExtractTemporaryFile('bass.dll');
ExtractTemporaryFile('CallbackCtrl.dll');
ExtractTemporaryFile('botva2.dll');
ExtractTemporaryFile('music.mp3');
ExtractTemporaryFile('MusicButton.png');

BASS_Init('{tmp}\music.mp3')
BASS_CreateOnOffButton(WizardForm, '{tmp}\MusicButton.png', 20, 320, 36, 36, 4)
#endif

#ifdef Splash
ExtractTemporaryFile('Splash.png');
ExtractTemporaryFile('isgsg.dll');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash.png',1000,3000,1000,0,255,False, $FFFFFF,10);
#endif
CreateWizardForm;
ButtonsTextures;
end;


function InitializeSetup: Boolean;
begin
ExtractTemporaryFile('botva2.dll');
ExtractTemporaryFile('b2p.dll');
ExtractTemporaryFile('CallbackCtrl.dll');
ExtractTemporaryFile('Click.wav');
ExtractTemporaryFile('skin.cjstyles');
LoadSkin(ExpandConstant('{tmp}\skin.cjstyles'), '');
Result := True;
end;


procedure DeinitializeSetup;
begin
BGImageStream.Free();
BTNImageStream.Free();
WFButtonFont.Free();
BASS_DeInit;
gdipShutdown();
UnloadSkin();
end;


Отправлено: 18:37, 06-01-2015 | #511



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 47
Благодарности: 5

Профиль | Отправить PM | Цитировать


Прошу прощения, ошиблась темой!

Отправлено: 19:03, 06-01-2015 | #512


SHVtYW4=


Contributor


Сообщения: 3466
Благодарности: 1161

Профиль | Отправить PM | Цитировать


Цитата Okta_333:
ошиблась темой! »
Над своим сообщением нажимаете ссылку "Редактировать"
Затем нажимаете кнопку "Удалить"
Переключаете точку на "Удалить сообщение"
В поле "Причина удаления:" - пишите причину удаления.
Напротив поля "Причина удаления:" (справа), нажимаете кнопку "Удалить сообщение"

-------
09a468a9b4293cd82adf6d6c60a9da82


Отправлено: 11:24, 07-01-2015 | #513


Пользователь


Сообщения: 76
Благодарности: 2

Профиль | Отправить PM | Цитировать


Всем здрасте!!! Незнаю как точно задать вопрос, вообщем я хочу загрузить WizardImageFile из секции Setup
Код: Выделить весь код
[Setup]
WizardImageFile=compiler:wizmodernimage.bmp
на какой-нибудь битмап (не извлекая wizmodernimage.bmp на жёсткий диск!), да ещё и через Bitmap.LoadFromResourceName :-) Спасибо

Отправлено: 01:29, 17-01-2015 | #514


Аватара для White Rabbit

Пользователь


Сообщения: 87
Благодарности: 2

Профиль | Отправить PM | Цитировать


Есть проблема. На секции создания двуязычной установки, а именно:
Код: Выделить весь код
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
вылетает с ошибкой. Часть лога ниже:
Код: Выделить весь код
....
Reading default messages from Default.isl
Oшибка компилятора!
File: C:\Program Files (x86)\Inno Setup 5\Default.isl  Line 210: Message name "ErrorCloseApplications" in Default.isl is not recognized by this version of Inno Setup.
После долгой и нудной возни выяснил, что проблема возникает из-за Inno ISCmplr Setup build 121002.
Пы.сы.: Ставил как в шапке: ispack-5.5.5-unicode, затем innocallback, Inno Setup Compiler build 121216. В таком виде программа работает. Но попытка установить Inno ISCmplr Setup build 121002 приводит к вылету. В чём причина - не знаю. Методом научного тыка обнаружил, что проблема связана с файлами ISCmplr.dll и ISPP.dll. Именно после их замены процесс компиляции сбоит. Замена ISCC.exe проблем не вызывает. При замене Setup.e32 и SetupLdr.e32 компиляция происходит, но созданный инсталлятор не работает.

Отправлено: 16:57, 21-03-2015 | #515


SHVtYW4=


Contributor


Сообщения: 3466
Благодарности: 1161

Профиль | Отправить PM | Цитировать


Цитата White Rabbit:
Ставил как в шапке: ispack-5.5.5-unicode »
Нажмите на спойлер "Расширенная версия Inno Setup от Restools"
Далее вы увидите что указана версия 5.5.1.
Это значит что нужно устанавливать версию 5.5.1, но никак версию 5.5.5.
Проект расширенных функций для Inno давно мёртв.
Inno Setup Compiler build 121216 - Применимо к версии 5.5.0 - 5.5.2
Inno ISCmplr Setup build 121002 - Применимо к версии 5.5.1

White Rabbit, Для "Inno ISCmplr Setup+Inno ISCmplr Setup" используйте версию Inno Setup 5.5.1 включительно.
Для версий Inno Setup вышедших после Inno Setup 5.5.1 - "Inno ISCmplr Setup плюс Inno ISCmplr Setup" = Не предназначено.

-------
09a468a9b4293cd82adf6d6c60a9da82


Последний раз редактировалось Nordek, 13-04-2015 в 19:04.


Отправлено: 17:53, 21-03-2015 | #516


Пользователь


Сообщения: 106
Благодарности: 3

Профиль | Отправить PM | Цитировать


Подскажите пожалуйста, как оставить "живым" окно инсталлятора во время выполнения программ из секции "Run"?

Код: Выделить весь код
[Run]
Filename: {app}\Temp\Pkzip.exe; WorkingDir: {app}; Parameters: "-add -store -dir=relative -NoZipExtension ""{app}\Modules\Ahkuilon.rvm"" ""{app}\Temp\Modules\Ahkuilon\*.*"""; StatusMsg: "Упаковка архива Ahkuilon.rvm..."; Flags: waituntilterminated skipifdoesntexist runhidden; Check: CheckError
или если через ISDone, чтоб вместо "Извлекается файл:" писалось то что я указал в функции ISExec (т.е. "Обновление архива Ahkuilon.rvm"):

Код: Выделить весь код
if not ISExec       ( 1, 0, 0, ExpandConstant('{app}\Temp\Pkzip.exe'), ExpandConstant('-add -store -dir=relative -NoZipExtension "{app}\Modules\Ahkuilon.rvm" "{app}\Temp\Modules\Ahkuilon\*.*"'), ExpandConstant('{app}\Temp'), 'Обновление архива Ahkuilon.rvm',false) then break;

Отправлено: 20:09, 22-04-2015 | #517


Аватара для pindows_xp

Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


привет форучани нужна ваша помош хочу вот такой файлик зделат сылку на свой сайт сам файл ехе формате когда кликаеш на файл она распакует файлы автоматический в програм файл и на рабочий стол кидает ярлык это сылка на сайт прошу помоч как можна зделат для себя вот сылка на ехе файл https://yadi.sk/d/vcmRINowgcSeH

Отправлено: 10:53, 14-05-2015 | #518


Аватара для freese

Ветеран


Contributor


Сообщения: 6245
Благодарности: 1188

Профиль | Отправить PM | Цитировать


pindows_xp, пробовали установить Inno? там по шагово все интуитивно и понятно создается

Отправлено: 12:05, 14-05-2015 | #519


Аватара для studentvnau@vk

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Всем привет, у меня такая ситуация: лежит несколько папок с вложенными папками и файлами по пути {src}, тоесть рядом с установщиком. Нужно задать условие, чтобы при выборе одного из компонентов из ComponentList, из конкретной папки копировались вложенные папки со все содержимым (тоесть c вложенными папками и файлами) (внимание: копировались, а не перемещались) в папку {app}. Если можно приложите пример с двумя компонентами, заранее благодарен.

Или же научите как сделать, чтобы 7z или зип архивы лежащие по пути {src} распаковывать в {app} без ISDone (у меня получится более 96 архивов, а насколько я знаю, с большим числом она работать не будет).
Можно ли вообще найти {src} инсталлятора средствами инно чтобы определить его более явно, если оно у каждого пользователя своё?

Последний раз редактировалось studentvnau@vk, 20-05-2015 в 07:34.


Отправлено: 07:03, 20-05-2015 | #520



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Inno Setup. Прочие вопросы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход