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

Компьютерный форум 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

 

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


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

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


кто нибудь смог допетрить как прикрутить запрос второго диска к скрипту Виктора Доброва (FreeArc_Example-Ext.iss)??, Попробовал прикрутить из этого примера
читать дальше »
#define MyAppName "Test"
#define MyAppVerName "Test"
#define MyAppExeName "Test.exe"

[Setup]
AppName={#MyAppName}
AppVerName={#MyAppName}
DefaultDirName={pf}\{#MyAppName}
DirExistsWarning=no
;DisableReadyPage=true
ShowLanguageDialog=auto
OutputBaseFilename=setup
OutputDir=.
UninstallDisplayIcon={app}\{#MyAppExeName}
DefaultGroupName={#MyAppName}
InternalCompressLevel=none
Compression=none

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

[Languages]
Name: eng; MessagesFile: compiler:Default.isl
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[Files]
Source: C:\Program Files\FreeArc\bin\Arc.exe; DestDir: {tmp}; Flags: dontcopy

[CustomMessages]
ExtrError=Произошла ошибка во время извлечения данных. Установка будет прервана.

[code]
var
SecondProgressBar: TNewProgressBar;

procedure InitializeWizard();
begin
WizardForm.FileNameLabel.Hide;
WizardForm.StatusLabel.Top:=ScaleY(81);
WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.StatusLabel.Width:=ScaleX(400);
WizardForm.ProgressGauge.Top:=ScaleY(100);
WizardForm.ProgressGauge.Left:=ScaleX(155);
WizardForm.ProgressGauge.Width:=ScaleX(262);

SecondProgressBar := TNewProgressBar.Create(WizardForm);
with SecondProgressBar do
begin
Parent := WizardForm.InstallingPage;
Left := ScaleX(0);
Top := ScaleY(100);
Width := ScaleX(150);
Height := ScaleY(21);
Min := 0;
Max := 13; //задается как (кол-во распаковываемых архивов * 3) + 1
end;
end;

procedure PlsInsertNextDisk(num: integer; CheckedFile: string);
var Capt:string;
begin
CheckedFile:=ExpandConstant(CheckedFile);
if not FileExists(CheckedFile) then begin
Capt:='Пожалуйста, вставьте диск %n, содержащий файл %f и нажмите ОК для продолжения установки.';
StringChange(Capt, '%n', inttostr(num));
StringChange(Capt, '%f', ExtractFileName(CheckedFile));
MsgBox(Capt, mbInformation, MB_OK);
PlsInsertNextDisk(num, CheckedFile);
end;
end;

procedure ExtractArc(arcArchName,arcDestDir:string);
var ResCode:integer;
begin
WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles);
Exec(ExpandConstant('{tmp}\arc.exe'), 'x '+AddQuotes(ExpandConstant(arcArchName))+' -y -dp'+AddQuotes(ExpandConstant(arcDestDir)), '', SW_HIDE, ewWaitUntilTerminated, ResCode);
if (ResCode <> 0) then begin
MsgBox(ExpandConstant('{cm:ExtrError}'), mbCriticalError, MB_OK);
SecondProgressBar.Hide;
DelTree(ExpandConstant('{app}'), True, True, True);
Abort;
end else
SecondProgressBar.Position:= SecondProgressBar.Position+3
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then begin
WizardForm.StatusLabel.Caption:=SetupMessage(msgStatusExtractFiles);
ExtractTemporaryFile('arc.exe');
SecondProgressBar.Position:=SecondProgressBar.Position+1;

ExtractArc('{src}\data-1.arc','{app}');
ExtractArc('{src}\data-2.arc','{app}');

PlsInsertNextDisk(2, '{src}\data-3.arc'); //если data4.arc не найден в корне диска, просим второй диск
ExtractArc('{src}\data-3.arc','{app}');
ExtractArc('{src}\data-4.arc','{app}');
PlsInsertNextDisk(1, '{src}\data-1.arc'); //снова просим первый диск
end;
end;
Но ничего не вышло, сразу как только должен распаковывать запрашивает 2ой диск с отсутствующим файлом не распаковав первый архив =\

Последний раз редактировалось DemonAk, 02-12-2009 в 01:33.


Отправлено: 19:28, 29-11-2009 | #551



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

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


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


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

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


Помогите пожалуйста исску доработать. Вот что есть:
Код: Выделить весь код
var
  CheckPage: TInputOptionWizardPage;
procedure InitializeWizard;
begin
  CheckPage := CreateInputOptionPage(wpInstalling, 'Realore Toolbar Installation', 'Thank you for choosing to install GAMENAME.', 'After installation of the application, you can also get the official Realore toolbar. The toolbar gives you instant access to cool tools like radio, weather, e-mail notifier and more.', False, False);
  CheckPage.Add('Instal Toolbar');
end;
function NextButtonClick(CurPageID: Integer): Boolean;
var
  I: Integer;
begin
  if CurPageID = CheckPage.ID then
    if CheckPage.Values[0] then begin
      Exec(ExpandConstant('{src}\RealoreStudios.exe'),
           '/silent /param2',
           ExpandConstant('{src}'),
           SW_HIDE,
          ewWaitUntilIdle,
          i);
    end;
  Result := True;
end;
на этом же экране надо (красный цвет):

Отправлено: 15:14, 30-11-2009 | #552


Забанен


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

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


Как сделать, чтобы можно было установить не только в папку или подпапку, но и прямо на диск, то есть в окне выбора места установки можно было указать корень диска C:\ или D:\ ?

Если выбираю установку на диск, то выскакивает окошко:

Код: Выделить весь код
Вы должны указать полный путь с буквой диска, например:
С:\APP
или в формате UNC:
\\имя_сервера\имя_ресурса
Нужно, чтобы была возможность распаковать файлы в корень диска.
Странно, почему инсталлятор ставит перепоны в этом отношении. Вроде вполне стандартное желание - куда хочу, туда и распаковываю. Ан нет, приходится измываться.

UPD.
Все, нашел такую опцию:
AllowRootDirectory=yes

Последний раз редактировалось LonerD, 30-11-2009 в 20:58.


Отправлено: 20:18, 30-11-2009 | #553


Аватара для YURSHAT

Старожил


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

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


Народ как добавить Title для MsgBox?
Например для этого
Код: Выделить весь код
MsgBox('Not Enough Disk Space', mbError, MB_OK);

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов


Отправлено: 00:55, 01-12-2009 | #554


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


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

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


Добрый день...
Пожалуйста помогите мне реализовать вот это:

http://s41.radikal.ru/i092/0912/4b/bbfa20d6152b.jpg

Последний раз редактировалось 414895494, 01-12-2009 в 20:30.


Отправлено: 20:17, 01-12-2009 | #555


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


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

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


Люди добрые, не подскажите?, нужно в окне инсталятора поле для ввода "ведите ник для сетевой игры. Послее ввода ника жмем далее и информация должна записаться в файл {app}\autoexec.cfg, вот так:
name "Ник который ввели"

Отправлено: 20:22, 01-12-2009 | #556


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


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

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


DemonAk, Думаю можно и так:

Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=userdocs:My Program.

[UninstallDelete]
Type: files; Name: "{app}\autoexec.cfg";

[code]
var
  Page: TInputQueryWizardPage;

procedure InitializeWizard();
begin
  Page := CreateInputQueryPage(wpWelcome, 'Текст_1', 'Текст_2', 'Введите ник для сетевой игры');
  Page.Add('', False);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then
   SaveStringToFile(ExpandConstant('{app}\autoexec.cfg'), 'name ' + '"' + Page.Values[0] + '"' + #13#10, False);
end;
А это условие:
Цитата:
Послее ввода ника жмем далее и информация должна записаться в файл {app}\autoexec.cfg, вот так:
name "Ник который ввели"
возможно не раньше wpSelectDir, т.к. {app} ещё не была определена.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:49, 01-12-2009 | #557


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


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

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


Цитата serg aka lain:
возможно не раньше wpSelectDir, т.к. {app} ещё не была определена. »
Да все нормально получилось, то что надо, спасибо еще раз
serg aka lain
А не подскажешь по моему сообщению выше насчет запроса 2го и последующих дисков??, а то у меня знаний не хватает), может у тебя появятся какие нибудь мысли.

Последний раз редактировалось DemonAk, 02-12-2009 в 01:01.


Отправлено: 00:50, 02-12-2009 | #558


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


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

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


Такая проблема сделал инсталл с черным фоном,када нажимаю на сетап.ехе то сам инсталл появляется только через 5 мин как исправить скажите??

Отправлено: 20:10, 02-12-2009 | #559


Аватара для A1EXXX

Старожил


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

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


REXE, это не из-за чёрного инсталла, решение вот...

Отправлено: 20:23, 02-12-2009 | #560



Компьютерный форум 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




 
Переход