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

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

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 3]

Ветеран


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


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

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


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 900 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 798 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

Аватара для R.i.m.s.k.y.

Ветеран


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

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


Откуда вы знаете какие переменные инно за что отвечают? К примеру что WizardForm.DirEdit.Text - путь?

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 21:11, 23-12-2010 | #221



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

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


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


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

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


Цитата Serega:
И может проще сделать так »
Соглашусь, проще.

Отправлено: 21:11, 23-12-2010 | #222


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


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

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


Цитата ksunechkin:
все хорошо, но вот если у disk:\program files\ убрать последний слэш, т.е. disk:\program files - все равно дает установить( »
Это защита от "упёртого" юзера, который любой ценой будет пытаться установить в эту папку?
Ну раз надо, то ещё раз пофиксим
исправленный пример
Код: Выделить весь код
[Setup]
AppName=My Program  
AppVerName=My Program
DefaultDirName={sd}\My Program
OutputDir=.
OutputBaseFilename=test

[code]
procedure MyFunction(Sender: TObject);
var
  S: String;
begin
  S := ExtractFilePath(WizardForm.DirEdit.Text);
  SetLength(S, Length(S)-1);

  if IsWin64 then
  begin
    if (Pos(ExpandConstant('{pf32}'), S) > 0) or (Pos(ExpandConstant('{pf64}'), S) > 0) then
    begin
      MsgBox('Программу нельзя устанавливать в' + #13#10 + S, mbInformation, MB_OK);
      WizardForm.DirEdit.Text := ExpandConstant('{sd}\My Program');
    end;
  end else
  if Pos(ExpandConstant('{pf}'), S) > 0 then
  begin
    MsgBox('Программу нельзя устанавливать в' + #13#10 + S, mbInformation, MB_OK);
    WizardForm.DirEdit.Text := ExpandConstant('{sd}\My Program');
  end;
  WizardForm.DirEdit.Text := AddBackSlash(WizardForm.DirEdit.Text);
end;

procedure InitializeWizard();
begin
  WizardForm.DirEdit.OnChange := @MyFunction;
end;

Последний раз редактировалось serg aka lain, 23-12-2010 в 22:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:27, 23-12-2010 | #223


Ветеран


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

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


Цитата R.i.m.s.k.y.:
Откуда вы знаете какие переменные инно за что отвечают? »
Это кому вопрос адресован?
От себя могу добавить, используйте версию от Restools, у них в редакторе есть много интересных фич.
Допустим набираем в процедуре WizardForm и ставим точку, дальше немного подождём и через секунду появиться список с возможными компонентами.
Принудительный вызов, после набора нескольких букв, списка с подсказками Ctrl+J.
Так же удобно смотреть описание разных функций, набираем название стандартной функции, наводим на нёё мышкой и нажимаем Ctrl+ЛКМ.
Цитата R.i.m.s.k.y.:
К примеру что WizardForm.DirEdit.Text - путь? »
Это также можно узнать в редакторе Restools, во вкладке WizardForm Designer открываем страницу SelectDirPage и выделяем искомый Edit, справа увидим, что он называется DirEdit.

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:33, 23-12-2010 | #224


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


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

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


Цитата serg aka lain:
Это защита от "упёртого" юзера, который любой ценой будет пытаться установить в эту папку? »
а они такие, что захотят сделать - то доведут до конца))
вот теперь замечательно работает. спасибо

Отправлено: 21:38, 23-12-2010 | #225


Аватара для R.i.m.s.k.y.

Ветеран


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

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


ksunechkin,
Для проги Налогоплательщик дистр пишешь
Serega,
А можно попросить забацать на инно дистр самого инно со всеми фишками? чтобы не собирать их по всем ссылкам (да и неработает у меня часть, мой инно здесь добрый человек подарил)

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 22:27, 23-12-2010 | #226


Ветеран


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

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


Цитата R.i.m.s.k.y.:
дистр самого инно со всеми фишками? »
что конкретно вы имеете ввиду под словом фишки?
Цитата R.i.m.s.k.y.:
да и неработает у меня часть »
обновите до последней версии.

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 23:17, 23-12-2010 | #227


Аватара для gur74

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


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

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


Люди, будьте человеками помогите пожалуйста поправить код, не воспроизводится музыка.
Вот скрипт:
читать дальше »
;InnoSetupVersion=5.3.10

[Setup]
AppName=LikeRusXP Localization
AppVerName={cm:NameAndVersion,LikeRusXP Localization,6.01.12}
AppVersion=6.01.12
DefaultDirName={pf}\LikeRusXP Localization
DefaultGroupName=LikeRusXP Localization
OutputBaseFilename=likerusxp 6.01.12
Compression=lzma
LicenseFile=embedded\License.txt
InfoBeforeFile=embedded\InfoBefore.txt
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
SetupIconFile={tmp}\MAINICON.ico

[Files]
Source: "{tmp}\bass.dll"; DestDir: "{tmp}"; Flags: deleteafterinstall dontcopy
Source: "{tmp}\sound.mp3"; DestDir: "{tmp}"; Flags: deleteafterinstall dontcopy
Source: "{tmp}\ISSkin.dll"; DestDir: "{app}"; Flags: dontcopy
Source: "{tmp}\Codejock.cjstyles"; DestDir: "{app}"; Flags: dontcopy
Source: "{tmp}\Splash.png"; DestDir: "{tmp}"; Flags: deleteafterinstall ignoreversion dontcopy
Source: "{tmp}\isgsg.dll"; DestDir: "{tmp}"; Flags: deleteafterinstall ignoreversion dontcopy
Source: "{app}\LikeRusXP.exe"; DestDir: "{app}"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion
Source: "{app}\limage.exe"; DestDir: "{app}"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion
Source: "{app}\LikeRusXP.chm"; DestDir: "{app}"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion
Source: "{app}\License.txt"; DestDir: "{app}"; MinVersion: 4.1.2222,5.0;
Source: "{app}\Glossary\russian.lg3"; DestDir: "{app}\Glossary"; MinVersion: 4.1.2222,5.0;
Source: "{app}\Store\elibrary.dll"; DestDir: "{app}\Store"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion
Source: "{app}\Store\lresdumper.dll"; DestDir: "{app}\Store"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion
Source: "{app}\Store\sl3core.dll"; DestDir: "{app}\Store"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion
Source: "{app}\Store\lires.exe"; DestDir: "{app}\Store"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion
Source: "{app}\Store\rb\lresdumper.dll"; DestDir: "{app}\Store\rb"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion
Source: "{app}\Store\rb\ResBinder.exe"; DestDir: "{app}\Store\rb"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion
Source: "{app}\Store\rb\readme.txt"; DestDir: "{app}\Store\rb"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion
Source: "{app}\Store\rb\english.uil"; DestDir: "{app}\Store\rb"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion
Source: "{app}\Store\rb\russian.uil"; DestDir: "{app}\Store\rb"; MinVersion: 4.1.2222,5.0; Flags: ignoreversion

[Messages]
BeveledLabel=RePack by Gu® 2010

////////////////////// Skin //////////////////////

[code]
#ifdef UNICODE
#define PStr "AnsiString"
#else
#define PStr "String"
#endif

procedure LoadSkin(lpszPath: {#PStr}; lpszIniFileName: {#PStr});
external 'LoadSkin@files:isskin.dll stdcall delayload setuponly';
procedure LoadSkinUninst(lpszPath: {#PStr}; lpszIniFileName: {#PStr});
external 'LoadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall delayload setuponly';
procedure UnloadSkinUninst();
external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
external 'ShowWindow@user32.dll stdcall';

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('Codejock.cjstyles');
CreateDir(ExpandConstant('{sd}\ISSkin'));
FileCopy(ExpandConstant('{tmp}\Codejock.cjstyles'), ExpandConstant('{sd}\ISSkin\Codejock.cjstyles'), True);
LoadSkin(ExpandConstant('{sd}\ISSkin\Codejock.cjstyles'), 'NormalBlack.ini');

Result := True;
end;

procedure DeinitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin();
DeleteFile(ExpandConstant('{sd}\ISSkin\isskin.dll'));
DeleteFile(ExpandConstant('{sd}\ISSkin\Codejock.cjstyles'));
RemoveDir(ExpandConstant('{sd}\ISSkin'));
end;

function InitializeUninstall(): Boolean;
begin
FileCopy(ExpandConstant('{app}\isskin.dll'),
ExpandConstant('{tmp}\isskin.dll'), True);
FileCopy(ExpandConstant('{app}\Codejock.cjstyles'),
ExpandConstant('{tmp}\Codejock.cjstyles'), True);

LoadSkinUninst(ExpandConstant('{tmp}\Codejock.cjstyles'), 'NormalBlack.ini');
Result := True;
end;

procedure DeinitializeUninstall();
begin
UnloadSkinUninst();
end;

////////////////////// 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';

procedure InitializeWizard();
begin
ExtractTemporaryFile('Splash.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash.png',1000,3000,1000,0,255,False, $FFFFFF,10);
end;

////////////////////// Sound ///////////////////////////

const
BASS_SAMPLE_LOOP = 4; //повторение

type
HSTREAM = DWORD; //тип звукового потока

function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean;
external 'BASS_Init@files:BASS.dll stdcall delayload';

function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): HSTREAM;
external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';

function BASS_Start(): Boolean;
external 'BASS_Start@files:BASS.dll stdcall delayload';

function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean;
external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';

function BASS_Stop(): Boolean;
external 'BASS_Stop@files:BASS.dll stdcall delayload';

function BASS_Free(): Boolean;
external 'BASS_Free@files:BASS.dll stdcall delayload';

procedure InitializeWizard2();
var
Name1: string;
i: Integer;
begin
ExtractTemporaryFile('bass.dll');
ExtractTemporaryFile('sound.mp3');
if BASS_Init(-1, 44100, 0, 0, 0) then
begin
BASS_Start();
Name1:=ExpandConstant('{tmp}\sound.mp3');
i:=BASS_StreamCreateFile(FALSE, PChar(Name1), 0, 0, 4);
if i <> 0 then
begin
BASS_ChannelPlay(i, True);
end;
end;
end;
procedure DeInitializeSetup2();
begin
BASS_Stop(); //нужно для остановки проигрывания
BASS_Free(); //нужно для быстрой выгрузки библиотеки вместе с муз. файлом
end;

////////////////////// Setup end //////////////////////

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssDone then
MsgBox('Программа ' + '{#SetupSetting("AppName")}' + ' установлена!', mbInformation, MB_OK);
end;

[Run]
Filename: "{app}\LikeRusXP.exe"; Description: "{cm:LaunchProgram,LikeRusXP}"; MinVersion: 4.1.2222,5.0;

[Icons]
Name: "{group}\LikeRusXP 6.01.12"; Filename: "{app}\LikeRusXP.exe"; MinVersion: 4.1.2222,5.0;
Name: "{group}\{cm:ProgramOnTheWeb,LikeRusXP 6.01.12}"; Filename: "http://likerusxp.ru/"; MinVersion: 4.1.2222,5.0;
Name: "{group}\{cm:UninstallProgram,LikeRusXP 6.01.12}"; Filename: "{uninstallexe}"; MinVersion: 4.1.2222,5.0;
Name: "{commondesktop}\LikeRusXP 6.01.12"; Filename: "{app}\LikeRusXP.exe"; Tasks: "desktopicon"; MinVersion: 4.1.2222,5.0;
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\LikeRusXP"; Filename: "{app}\LikeRusXP.exe"; Tasks: "quicklaunchicon"; MinVersion: 4.1.2222,5.0;

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; MinVersion: 4.1.2222,5.0;
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; MinVersion: 4.1.2222,5.0;

[CustomMessages]
russian.NameAndVersion=%1, версия %2
russian.AdditionalIcons=Дополнительные значки:
russian.CreateDesktopIcon=Создать значок на &Рабочем столе
russian.CreateQuickLaunchIcon=Создать значок в &Панели быстрого запуска
russian.ProgramOnTheWeb=Сайт %1 в Интернете
russian.UninstallProgram=Деинсталлировать %1
russian.LaunchProgram=Запустить %1
russian.AssocFileExtension=Св&язать %1 с файлами, имеющими расширение %2
russian.AssocingFileExtension=Связывание %1 с файлами %2...

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl



Отправлено: 03:11, 24-12-2010 | #228


Аватара для Habetdin


Автор проектов


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

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


gur74, попробуйте так:
читать дальше »
Только секция code:
Код: Выделить весь код
[code]
#ifdef UNICODE
#define PStr "AnsiString"
#else
#define PStr "String"
#endif
////////////////////// Sound and Skin ///////////////////////////

const
BASS_SAMPLE_LOOP = 4; //повторение

type
HSTREAM = DWORD; //тип звукового потока

function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean;
external 'BASS_Init@files:BASS.dll stdcall delayload';

function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): HSTREAM;
external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';

function BASS_Start(): Boolean;
external 'BASS_Start@files:BASS.dll stdcall delayload';

function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean;
external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';

function BASS_Stop(): Boolean;
external 'BASS_Stop@files:BASS.dll stdcall delayload';

function BASS_Free(): Boolean;
external 'BASS_Free@files:BASS.dll stdcall delayload';

procedure LoadSkin(lpszPath: {#PStr}; lpszIniFileName: {#PStr});
external 'LoadSkin@files:isskin.dll stdcall delayload setuponly';
procedure LoadSkinUninst(lpszPath: {#PStr}; lpszIniFileName: {#PStr});
external 'LoadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall delayload setuponly';
procedure UnloadSkinUninst();
external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
external 'ShowWindow@user32.dll stdcall';

function InitializeSetup(): Boolean;
var Name1: string;
i: Integer;
begin
ExtractTemporaryFile('Codejock.cjstyles');
CreateDir(ExpandConstant('{sd}\ISSkin'));
FileCopy(ExpandConstant('{tmp}\Codejock.cjstyles'), ExpandConstant('{sd}\ISSkin\Codejock.cjstyles'), True);
LoadSkin(ExpandConstant('{sd}\ISSkin\Codejock.cjstyles'), 'NormalBlack.ini');
ExtractTemporaryFile('bass.dll');
ExtractTemporaryFile('sound.mp3');
if BASS_Init(-1, 44100, 0, 0, 0) then
begin
BASS_Start();
Name1:=ExpandConstant('{tmp}\sound.mp3');
i:=BASS_StreamCreateFile(FALSE, PChar(Name1), 0, 0, 4);
if i <> 0 then
BASS_ChannelPlay(i, True);
end;
Result := True;
end;

procedure DeinitializeSetup();
begin
BASS_Stop(); //нужно для остановки проигрывания
BASS_Free(); //нужно для быстрой выгрузки библиотеки вместе с муз. файлом
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin();
DeleteFile(ExpandConstant('{sd}\ISSkin\isskin.dll'));
DeleteFile(ExpandConstant('{sd}\ISSkin\Codejock.cjstyles'));
RemoveDir(ExpandConstant('{sd}\ISSkin'));
end;

function InitializeUninstall(): Boolean;
begin
FileCopy(ExpandConstant('{app}\isskin.dll'),
ExpandConstant('{tmp}\isskin.dll'), True);
FileCopy(ExpandConstant('{app}\Codejock.cjstyles'),
ExpandConstant('{tmp}\Codejock.cjstyles'), True);

LoadSkinUninst(ExpandConstant('{tmp}\Codejock.cjstyles'), 'NormalBlack.ini');
Result := True;
end;

procedure DeinitializeUninstall();
begin
UnloadSkinUninst();
end;

////////////////////// 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';

procedure InitializeWizard();
begin
ExtractTemporaryFile('Splash.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash.png',1000,3000,1000,0,255,False, $FFFFFF,10);
end;

////////////////////// Setup end //////////////////////

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssDone then
MsgBox('Программа ' + '{#SetupSetting("AppName")}' + ' установлена!', mbInformation, MB_OK);
end;

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:11, 24-12-2010 | #229


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Цитата Serega:
что конкретно вы имеете ввиду под словом фишки »
А все что в шапке

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 07:18, 24-12-2010 | #230



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

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

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




 
Переход