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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: Vadikan
Дата: 22-05-2012
Описание: Закрыто
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

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


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


Продолжение обсуждения
Скрипты Inno Setup. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

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

Ветеран


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

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


Цитата Devils Night:
Как сделать так чтобы при установки определялась версия Net.Framework 3.5, если он не установлен, то сначало устанавливался Net.Framework 3.5 из папки Others, а потом продолжалася установка, если установлен то продолжал установку? »
Код: Выделить весь код
function netfw35(): Boolean;
begin
if ( RegKeyExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5') ) then Result := True else Result := False;
end;

Function InitializeSetup: Boolean;
var res, i : Integer; 
Begin
result:=true;//шоп не закрылся инсталлер
if (not netfw35) then begin
  MsgBox('Net.Framework 3.5 не найден, нажмите ОК для установки', mbInformation, MB_OK);
  Exec(ExpandConstant('{src}\Others\dotnet35.exe'), ' /q /passive /norestart',ExpandConstant('{src}\Others\'),SW_show, ewWaitUntilTerminated, res);
  result:=true;//шоп не закрылся инсталлер
end;//if (not netfw35) 
end; //InitializeSetup

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


Последний раз редактировалось R.i.m.s.k.y., 06-12-2011 в 08:46.

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

Отправлено: 08:12, 06-12-2011 | #331



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

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


Забанен


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

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


R.i.m.s.k.y., это я закоментировал
Код: Выделить весь код
result:=true;//шоп не закрылся инсталлер
, чтоб закрывался, потому не нужно чтобы устанавливался без Framework-а, и нужно вот что, чтобы установка дожидалась пока установится Framework, и как Framework установится то продолжалась основная установка!?

Отправлено: 12:27, 06-12-2011 | #332


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

Ветеран


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

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


Цитата Devils Night:
чтоб закрывался, потому не нужно чтобы устанавливался без Framework-а, и нужно вот что, чтобы установка дожидалась пока установится Framework, и как Framework установится то продолжалась основная установка!? »
ewWaitUntilTerminated указывает, что инсталлер будет ждать пока не поставится фреймворк
тебе надо чтобы закрылся или чтобы поставил фреймворк и продолжил?
вверху - поставит и продолжит
если хочешь чтобы закрылся - убери Exec и исправь

if (not netfw35) then begin
...
result:=false;
...

кстати зря закомменил "шоп не закрылся инсталлер", если какой-то шаг вернет false в результате ошибки вызова, то без этой строчки InitializeSetup тоже может получить на выходе false и инсталлер закроется

ворчание моде он
народ, где вы так писать научились, а? зато никто не забывает попинать бабу-ЕГЭ
книжки бы хоть почитали, грамотные, как предложения строятся, как мысль из мозга переносится на бумагу/клавиатуру
хотя если учесть, что написанная мысль - есть мысль измышленная, я даже боюсь представить что там измышляется

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


Последний раз редактировалось R.i.m.s.k.y., 06-12-2011 в 12:49.

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

Отправлено: 12:39, 06-12-2011 | #333


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


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

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


Помогите, пожалуйста, доработать, исправить, "усовершенствовать" скрипт!
Или поделитесь какими-нибудь другими кодами создания индикаторов процесса "для секции [Run]"

ПРОБЛЕМА: Индикатор работает НЕ на всех темах!!!

[Setup]
AppName=MyProg
AppVerName=MyProg
DefaultDirName={pf}\MyProg
OutputDir=.
Compression=lzma/ultra
SolidCompression=yes

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

[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion

[code]
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall';

const
PBM_SETMARQUEE = $040A;
GWL_STYLE = -16;
PBS_MARQUEE = $08;

var
AnimatePb: TNewProgressBar;

procedure CreateAnimatePb;
begin
AnimatePb := TNewProgressBar.Create(WizardForm);
with AnimatePb do
begin
Parent := WizardForm.InstallingPage;
SetBounds(WizardForm.ProgressGauge.Left, WizardForm.ProgressGauge.Top + WizardForm.ProgressGauge.Height + ScaleY(10),
WizardForm.ProgressGauge.Width, WizardForm.ProgressGauge.Height);
SetWindowLong (AnimatePb.Handle, GWL_STYLE, (GetWindowLong (AnimatePb.Handle, GWL_STYLE) or PBS_MARQUEE));
SendMessage(AnimatePb.Handle, PBM_SETMARQUEE, 1, 20);
end;
end;

procedure AnimatePbMsg(const msg: string);
begin
if AnimatePb = nil then
CreateAnimatePb;
WizardForm.FilenameLabel.Caption := msg;
end;

procedure AnimatePbFree;
begin
if AnimatePb <> nil then
begin
AnimatePb.Free;
AnimatePb := nil;
end;
end;

[Run]
Filename: {app}\MyProg.exe; BeforeInstall: AnimatePbMsg('Создание файла...'); Flags: skipifsilent
Filename: {app}\MyProg2.exe; BeforeInstall: AnimatePbMsg('Создание файла...'); Flags: skipifsilent
Filename: {app}\MyProg3.exe; BeforeInstall: AnimatePbMsg('Создание файла...'); AfterInstall: AnimatePbFree; Flags: skipifsilent

ПРОБЛЕМА: Индикатор работает НЕ на всех темах!!!

А также:
1. Нужно поднять индикатор выше, чтобы он был на том же самом месте, что и оригинальный и выглядел также.
2. Убрать сообщения, т.к. я использую "StatusMsg", а если не использовать, то появится сообщение "Завершение установки"
3. Сделать кнопку "Отмена" активной и вернуть возможность прерывания процесса установки.

Если нельзя ничего этого сделать, поделитесь какими-нибудь другими кодами создания индикаторов процесса "для секции [Run]"

У меня из секции [Run], выполняется ещё куча команд в скрытом режиме, которая занимает довольно много времени, поэтому нужна какая-то индикация...

ИЛИ МОЖЕТ ЕСТЬ КАКОЙ-НИБУДЬ ДРУГОЙ СПОСОБ, для запуска и выполнения дополнительных операций, во время и/или после установки, НЕ обязательно из секции [Run] со стандартной индикацией процесса?!

Отправлено: 18:49, 07-12-2011 | #334


Забанен


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

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


Цитата R.i.m.s.k.y.:
чтобы поставил фреймворк и продолжил? »
Именно это надо.
Цитата R.i.m.s.k.y.:
кстати зря закомменил "шоп не закрылся инсталлер" »
А когда не убран, он всё равно продолжает установку, даже если фреймворк не установлен.
Цитата R.i.m.s.k.y.:
убери Exec и исправь
if (not netfw35) then begin
...
result:=false;
... »
Насчёт этого, я тугой вообще, туго соображаю.

Отправлено: 07:46, 08-12-2011 | #335


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


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

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


Посмотрите, пожалуйста, мой скрипт, - проверьте, исправьте если, что нужно и скажите, что да, как!
За гламуром вообще НЕ гонюсь... наоборот, всё должно быть компактно, аккуратно и близко к оригиналу...

http://rghost.ru/33759851

Если есть более, простой способ всех проведённых мною манипуляций, то подскажите, пожалуйста!
А также, посоветуйте, пожалуйста, насчёт индикатора процесса...
И вообще, что касается выполнения большого количества каких-либо операций во время и/или после установки, как это лучше реализовать?
Можно ли сделать кнопку "Отмена" активной и/или выполнять это всё не из секции [Run]?!
А последнее по поводу "runascurrentuser" нужно, чтобы все команды выполнялись с правами Администратора!

Отправлено: 16:13, 08-12-2011 | #336


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


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

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


Как использовать *.png или *.gif картинку в WizardSmallImageFile и WizardImageFile, вместо *.bmp

Отправлено: 17:17, 08-12-2011 | #337


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


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

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


TROY Diamond,
botva2.dll

Отправлено: 18:01, 08-12-2011 | #338


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


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

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


Vista-w,
на сколько я знаю-ботва не работает с *.gif

-------
Мой сайт: k-soft.kz


Отправлено: 22:28, 08-12-2011 | #339


Аватара для No4noylis

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


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

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


ARS_23, Inno GIFCtrl не поможет???

-------
Нет ничего невозможного...

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

Отправлено: 22:44, 08-12-2011 | #340



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Test ferget Тест-форум 0 24-08-2011 01:25
test ! ! Aaa ! ! Тест-форум 0 23-04-2011 11:29
test Santa aka Snt Тест-форум 0 16-04-2011 22:35
test xolod. Программное обеспечение Linux и FreeBSD 0 19-04-2009 21:03
Test memory KEugeNik Хочу все знать 11 23-11-2003 23:11




 
Переход