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

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

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

Ветеран


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


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

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


Изменения
Автор: jameszero
Дата: 08-11-2010
Описание: тема закрыта
Лимит страниц.
Тема закрыта.
Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3]




Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


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

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

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы. Официальный сайт - недоступен.
    Последняя версия: 2.0.8 [12.11.2006] - Страница с зеркалами;

  • 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.3 [11.09.2009] - Скачать;


Ссылка на архив предыдущей темы (также можно скачать из вложения)

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


Отправлено: 22:06, 23-08-2009

 

Аватара для Tukash

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


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

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


morozov-ch
{app}

Отправлено: 20:04, 01-02-2010 | #1161



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

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


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


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

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


Serega,
благодарю! работает! только вот что указать DefaultDirName чтобы при выборе какой либо папки она не добавляло этот DefaultDirName
к примеру DefaultDirName = \MyProgram то в списке выбрав папку C:\Games у меня автоматически получится С:\Games\MyProgram
мне не надо что бы так получалось
заранее благодарю!

Отправлено: 03:25, 02-02-2010 | #1162


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


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

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


Может я не правельно выразился или что-то не понимаю
Вот функция

//Настройка подключения к серверу.
procedure MyAfterInstall();
//Копирование файла настроек.
begin
FileCopy('{app}\Nastr.ini','{pf}\PPPPP\Nastr.ini', false);
end;


Не работает.

Отправлено: 07:42, 02-02-2010 | #1163


Ветеран


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

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


Цитата lexikon:
что указать DefaultDirName чтобы при выборе какой либо папки она не добавляло этот DefaultDirName »
Нужно просто указать AppendDefaultDirName=no, пример:
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
AppendDefaultDirName=no
DefaultDirName={pf}\My Program
;*********и т.д.************;
Цитата morozov-ch:
Подскажите в какой переменной/константе в Inno Setup хранится путь к инсталятору.»
AddBackslash(ExpandConstant('{src}')) или ExtractFilePath(ExpandConstant('{srcexe}'))
Цитата morozov-ch:
{scr} - не проходит. »
есть {src}, вы спутали.
Цитата morozov-ch:
FileCopy('{app}\Nastr.ini','{pf}\PPPPP\Nastr.ini', false); »
забыли дописать ExpandConstant, т.е. надо так:
Код: Выделить весь код
FileCopy(ExpandConstant('{app}\Nastr.ini'), ExpandConstant('{pf}\PPPPP\Nastr.ini'), False);

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

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

Отправлено: 07:59, 02-02-2010 | #1164


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


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

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


Народ, помогите пожалуйста с событиями. Понимаю что где то координально ошибся, но объясню что есть и что надо. Если первый чекбокс снять, то 2 и 3 благополучно снимаются, но делаются не кликабельными, а хочется что бы на их нажатие реагировал первый чекбокс, т.е. из двух событий работает первое и оно перекрывает второе.

Код: Выделить весь код
procedure OnClickCheck(Sender: TObject);
begin
    if №1Check.Checked = false then
      begin
        №2Check.Checked := false;
        №3Check.Checked := false;
      end;

    if №2Check.Checked = true or №3Check.Checked = true then
      begin
        №1Check.Checked := true;
      end;
end;

procedure InitializeWizard();
begin
  CreateTheWizardPages;
  №1Check.OnClick := @OnClickCheck;
  №2Check.OnClick := @OnClickCheck;
  №3Check.OnClick := @OnClickCheck;
end;

Отправлено: 11:06, 02-02-2010 | #1165


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


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

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


Кто-нибудь помогите, плиз

Отправлено: 13:04, 02-02-2010 | #1166


Ветеран


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

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


Цитата Cranz86:
Понимаю что где то координально ошибся, »
надо так:
Пример
Код: Выделить весь код
procedure CheckOnClick_1(Sender: TObject);
begin
  if not №1Check.Checked then
    begin
      №2Check.Checked:= False;
      №3Check.Checked:= False;
    end;
end;

procedure CheckOnClick_2(Sender: TObject);
begin
  if №2Check.Checked or №3Check.Checked then
    №1Check.Checked:= True;
end;

procedure InitializeWizard();
begin
  CreateTheWizardPages;
  №1Check.OnClick:= @CheckOnClick_1;
  №2Check.OnClick:= @CheckOnClick_2;
  №3Check.OnClick:= @CheckOnClick_2;
end;

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

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

Отправлено: 14:47, 02-02-2010 | #1167


Аватара для svensoft

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


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

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


vint56, спасибо ..))

Отправлено: 16:35, 02-02-2010 | #1168


Аватара для Sotonisto

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


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

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


Цитата yamaha:
Подскажите как сделать слайд шоу? »
Либо так:
читать дальше »
[Setup]
WindowVisible=yes
WindowResizable=no
WindowShowCaption=no

[Files]
Source: C:\isxbb.dll; DestDir: {tmp}; Flags: dontcopy
Source: C:\1.jpg; DestDir: {tmp}; Flags: dontcopy
//////////файлы для слайд-шоу//////////
Source: C:\2.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\3.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\4.jpg; DestDir: {tmp}; Flags: dontcopy

[code]
const
BACKGROUND=6;
TIMER=16;

function isxbb_AddImage(Image: PChar; Flags: Cardinal): Integer;
external 'isxbb_AddImage@files:isxbb.dll stdcall';

function isxbb_Init(hWnd: Integer): Integer;
external 'isxbb_Init@files:isxbb.dll stdcall';

function isxbb_StartTimer(Seconds: Integer; Flags: Cardinal): Integer;
external 'isxbb_StartTimer@files:isxbb.dll stdcall';

function isxbb_KillTimer(Flags: Cardinal): Integer;
external 'isxbb_KillTimer@files:isxbb.dll stdcall';

procedure InitializeWizard();
begin
ExtractTemporaryFile('1.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\1.jpg',BACKGROUND);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin

///////В начале этапа установки запускаем слайд-шоу
if CurStep=ssInstall
then
begin
ExtractTemporaryFile('2.jpg');
ExtractTemporaryFile('3.jpg');
ExtractTemporaryFile('4.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\2.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\3.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\4.jpg',BACKGROUND or TIMER);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));

///////Таймер показа изображений, в секундах
isxbb_StartTimer(3,BACKGROUND)
end;

///////На завершающем этапе останавливаем таймер, при этом возвращается фоновое изображение по умолчанию
else if CurStep=ssPostInstall then
isxbb_KillTimer(BACKGROUND);
end;

Либо так:
читать дальше »
[Setup]
WindowVisible=no

[Files]
Source: " D:\GAME\* "; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

///////Oпределяем файлы, перед установкой которых будет выполнена процедура смены изображения

Source: "D:\GAME\MOVIES\Intro.bik"; DestDir: "{app}\MOVIES"; Flags: ignoreversion recursesubdirs createallsubdirs; BeforeInstall: bbrd1;
Source: "D:\GAME\SOUNDS\Effects.pak"; DestDir: "{app}\SOUNDS"; Flags: ignoreversion recursesubdirs createallsubdirs; BeforeInstall: bbrd2;
Source: "D:\GAME\Core.dll"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; BeforeInstall: bbrd3;
Source: "D:\GAME\TEXTURES\Models.pak"; DestDir: "{app}\TEXTURES"; Flags: ignoreversion recursesubdirs createallsubdirs; BeforeInstall: bbrd4;

///////Указываем основное фоновое и дополнительные изображения, показ которых будет выполнен через процедуры.

Source: C:\Background.bmp; DestDir: {tmp}; Flags: dontcopy
Source: C:\bbrd1.bmp; DestDir: {tmp}; Flags: dontcopy
Source: C:\bbrd2.bmp; DestDir: {tmp}; Flags: dontcopy
Source: C:\bbrd3.bmp; DestDir: {tmp}; Flags: dontcopy
Source: C:\bbrd4.bmp; DestDir: {tmp}; Flags: dontcopy

[code]
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';

var
BackgroundBitmapImage: TBitmapImage;
s:string;
width, height: Integer;

///////Процедура для показа основного фонового изображения
procedure wizimage;
begin
WizardForm.Position:=poScreenCenter;
MainForm.BORDERSTYLE:=bsNone;
width:=GetSystemMetrics(0);
height:=GetSystemMetrics(1);
MainForm.Width:=width;
MainForm.Height:=height;
width:=MainForm.ClientWidth;
height:=MainForm.ClientHeight;
MainForm.Left := 0;
MainForm.Top := 0;
s:=ExpandConstant('{tmp}')+'\Background.bmp';
BackgroundBitmapImage := TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Bitmap.LoadFromFile(s);
BackgroundBitmapImage.Align := alClient;
BackgroundBitmapImage.Parent := MainForm;
BackgroundBitmapImage.Stretch:=True;
MainForm.Visible:=True;
end;

procedure InitializeWizard();
begin
ExtractTemporaryFile('Background.bmp');
///////Выполнение процедуры показа фонового изображения
wizimage;
end;

///////Размеры и параметры дополнительных изображений
procedure ImgSetting;
begin
MainForm.BORDERSTYLE:=bsNone;
MainForm.Width:=width;
MainForm.Height:=height;
width:=MainForm.ClientWidth;
height:=MainForm.ClientHeight;
MainForm.Left := 0;
MainForm.Top := 0;
BackgroundBitmapImage := TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Bitmap.LoadFromFile(s);
BackgroundBitmapImage.Align := alClient;
BackgroundBitmapImage.AutoSize := False;
BackgroundBitmapImage.Parent := MainForm;
BackgroundBitmapImage.Stretch:= False;
MainForm.Visible:=True;
end;

///////Процедуры показа изображений
procedure bbrd1;
begin
ExtractTemporaryFile('bbrd1.bmp');
s:=ExpandConstant('{tmp}')+'\bbrd1.bmp';

///////Вставляем вышеуказанную процедуру
ImgSetting;
end;

procedure bbrd2;
begin
ExtractTemporaryFile('bbrd2.bmp');
s:=ExpandConstant('{tmp}')+'\bbrd2.bmp';
ImgSetting;
end;

procedure bbrd3;
begin
ExtractTemporaryFile('bbrd3.bmp');
s:=ExpandConstant('{tmp}')+'\bbrd3.bmp';
ImgSetting;
end;

procedure bbrd4;
begin
ExtractTemporaryFile('bbrd4.bmp');
s:=ExpandConstant('{tmp}')+'\bbrd4.bmp';
ImgSetting;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpInstalling
then
begin
WizardForm.CancelButton.BringToFront;
WizardForm.MainPanel.Visible:=False;
WizardForm.Bevel1.Visible:=False;
WizardForm.Width:=ScaleX(395);
WizardForm.Height:=ScaleY(142);
WizardForm.Left:=ScaleX(MainForm.Width-420);
WizardForm.Top:=ScaleY(MainForm.Height-170);
WizardForm.InnerNotebook.Left:=ScaleX(10);
WizardForm.InnerNotebook.Top:=ScaleY(10);
WizardForm.InnerNotebook.Width:=ScaleX(370);
WizardForm.StatusLabel.Left:=ScaleX(0);
WizardForm.StatusLabel.Top:=ScaleY(0);
WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.FileNameLabel.Left:=ScaleX(0);
WizardForm.FileNameLabel.Top:=ScaleY(20);
WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Top:=ScaleY(40);
WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width;
WizardForm.CancelButton.Left:=ScaleX(154);
WizardForm.CancelButton.Top:=ScaleY(80);
end
if CurPageID=wpFinished
then
begin
WizardForm.Width:=502;
WizardForm.Height:=392;
WizardForm.Position:=poScreenCenter;

///////Вставляем процедуру для показа первоначально фонового изображения
wizimage;
end
end;


P.S.: советую скачать Коллекцию скриптов (в шапке этой темы).

-------
Большой шаг вперед, как правило, следствие хорошего пинка под зад.


Последний раз редактировалось Sotonisto, 19-06-2011 в 23:42.


Отправлено: 18:04, 02-02-2010 | #1169


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


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

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


Как сделать чтобы автоматом во время установки он запустил reg и без подтверждения добавил инфу?

Отправлено: 19:20, 02-02-2010 | #1170



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход