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

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

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

Ветеран


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


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

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


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

 

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


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

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


Можете помочь, когда устанавливаю выдает ошибку: не чего не найденно для if not IS7ZipExtract вот скрипт
И еще установка идет до 300%! Как это исправить?

Отправлено: 22:39, 30-07-2011 | #2521



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

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


Ветеран


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

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


ilyhakz001 это значит что неуказано файла 7-zip который должен распаковываться в скрипте

Отправлено: 22:45, 30-07-2011 | #2522


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


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

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


Цитата insombia:
insombia »
я все указывал

Отправлено: 23:29, 30-07-2011 | #2523


Аватара для Rikill

Старожил


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

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


ilyhakz001, а инно говорит об обратном


имеется собственный прогресс бар, на него накладывается текстура, как сделать чтобы проценты ISDone были поверх прогресс бара??


Есть идея собрать эквалайзер на bass.dll, не очень получается, пока нарыл инфу на дельфи, но дельфи яя не знаю как в инно перенести, вот код:
Код: Выделить весь код
var 
 FileStream: HSTREAM; // handle воспроизводящегося потока 
 FX: HFX; // handle добавляемого эффекта 
procedure TForm1.TrackBar1Change(Sender: TObject); 
var 
 PE: BASS_DX8_PARAMEQ; 
begin 
 BASS_ChannelRemoveFX(FileStream, FX); // чтобы убрать предыдущую настройку 
 FX := FBASS_ChannelSetFX(FileStream, BASS_FX_DX8_PARAMEQ, 1); 
 PE.fCenter := 80; // частота регулируемой полосы (в герцах, от 80 до 16000) 
 PE.fGain := TrackBar1.Position; // задаваемое значение (от -15 до 15) 
 BASS_FXSetParameters(FX, @PE); 
end;
буду благодарен за помощ.

-------
"Око за око приведёт к слепоте мира"- Ганди


Последний раз редактировалось Rikill, 31-07-2011 в 03:46.


Отправлено: 23:41, 30-07-2011 | #2524


Аватара для Shegorat

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


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

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


Rikill
Ты бы хоть иногда в справку заглядывал. В данном случае в справку, идущую с bass.dll.
читать дальше »

Код: Выделить весь код
[Setup]
AppName=MyApp
AppVername=MyApp
DefaultDirname={pf}\MyApp

[ code]
type
  HSTREAM = DWORD;
  HFX = DWORD;
  BASS_DX8_PARAMEQ = record
    fCenter: single;
    fBandwidth: single;
    fGain: single;
  end;

const
  BASS_FX_DX8_PARAMEQ     = 7;
  
function BASS_ChannelSetFX(handle, type_: DWORD; priority: LongInt): HFX; external 'BASS_ChannelSetFX@files:bassdll.dll stdcall';
function BASS_ChannelRemoveFX(handle: DWORD; fx: HFX): BOOL; external 'BASS_ChannelRemoveFX@files:bassdll.dll stdcall';
function BASS_FXSetParameters(handle: HFX; par: BASS_DX8_PARAMEQ): BOOL; external 'BASS_FXSetParameters@files:bassdll.dll stdcall';
function BASS_FXGetParameters(handle: HFX; var par: BASS_DX8_PARAMEQ): BOOL; external 'BASS_FXGetParameters@files:bassdll.dll stdcall';
function BASS_FXReset(handle: HFX): BOOL; external 'BASS_FXReset@files:bassdll.dll stdcall';

var
 FileStream: HSTREAM; // handle воспроизводящегося потока
 FX: HFX; // handle добавляемого эффекта
 TrackBar1: TTrackBar;
 
procedure TrackBar1Change(Sender: TObject);
var
 PE: BASS_DX8_PARAMEQ;
begin
 BASS_ChannelRemoveFX(FileStream, FX); // чтобы убрать предыдущую настройку
 FX := BASS_ChannelSetFX(FileStream, BASS_FX_DX8_PARAMEQ, 1);
 PE.fCenter := 80; // частота регулируемой полосы (в герцах, от 80 до 16000)
 PE.fGain := TrackBar1.Position; // задаваемое значение (от -15 до 15)
 BASS_FXSetParameters(FX, PE);
end;

Как-то так. Но у функций BASS_FXGetParameters, BASS_FXSetParameters, вторым параметром стоит Pointer, т.е. указатель на область памяти содержащей структуру, а не сама структура, так что хз как будет работать.

-------
Как много дел считались невозможными, пока они не были осуществлены.

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

Отправлено: 08:30, 31-07-2011 | #2525


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


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

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


Ну тогда хотябы как убрать 300%

Отправлено: 11:12, 31-07-2011 | #2526


Старожил


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

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


ilyhakz001, ты читал справку по isdone
читать дальше »

Описание режимов работы библиотеки


Для осуществения работоспособности библиотеки существует 2 вида определения процентных соотношений между операциями на всем прогрессбаре:

Автоматическая расстановка процентных соотношений в операциях.
При автоматической расстановке необходим тестовый проход для определения времени выполнения каждой операции относительно других.
Для включения данного режима необходимо заполнить вторые значения всех функций извлечения архивов нулями.
Краткая инструкция:
а) первым делом убедитесь, что в начале скрипта закомментирована строка

#define records
(т.е. необходимо поставить точку с запятой в начале этой строки);
б) компилим проект и запускаем на установку. Это и будет нашим тестовым проходом. Все операции должны дойти до конца и завершиться удачно. Прогрессбар будет зашкаливать и все компоненты будут извлечены вне зависимости от того выбраны они, или нет. Все так и должно быть!
в) после тестового прогона в указанной папке создастся файл records.inf (имя и путь назначается в процедуре инициализации. О ней см. "подробное описание функций" ниже), его необходимо добавить в проект, раскомметировав, или добавив в начале скрипта строку:

#define records

Так же стоит отметить, что если сам скрипт находится в папке отличной от той, в которую компилится проект (например в скрипте NFS:Undercover откомпиленный файл сохраняется в Output\setup.exe), то records.inf создастся в папке с setup.exe и его необходимо будет перенести непосредственно к скрипту, или же подправить в секции [Files] его истинное расположение, например:

#ifdef records
Source: Output\records.inf; DestDir: {tmp}; Flags: dontcopy
#endif
г) снова откомпилить проект.
После этого инсталлер готов к работе.
При запуске процесс выполнения операций будет равномерно и корректно отображаться на прогрессбаре.




Ручная расстановка процентов на каждую операцию.
При ручной расстановке если в проекте множество операций, все расчеты необходимо производить вручную. Т.е. сумма процентов всех выполненных операций должна равняться 100%, иначе корректного отображения на прогрессбаре не будет.
Для включения данного режима необходимо заполнить вторые значения всех функций извлечения архивов значениями процентов, отличными от 0 (числа могут быть дробными).
При групповой распаковке архивов по маске (типа *.pcf) для операции задается общий процент на все распаковываемые файлы данной командой, а уж каждый из найденных файлов будет разбивать указанный кусок прогрессбара еще на части пропорциональные размерам файлов. Например строка:

if not ISArcExtract (0, 100, ExpandConstant('{src}\*.arc'), ExpandConstant('{app}'), false, '', '', '') then break;
...
распакует все *.arc архивы из {src} в {app}, при чем весь прогрессбар будет поделен на кусочки пропрорциональные размерам архивов. В общем тут все так же как в скрипте распаковки FreeArc.iss и ему подобным. Таким образом при распаковке нескольких архивов одного типа проще пользоваться ручной расстановкой, т.к. отличие расперделения процентов от автоматической будет совсем небольшим, но за то не требуется тестовый проход.
Вот некоторые правила, которые неоходимо выполнять при ручной расстановке:
а) сумма процентов учитывая ветвления (использование компонентов, условий) в скрипте должна составлять 100;
б) у компонентов, для которых возможен выбор только одного из нескольких, должны быть одинаковые значения процентов;
в) НЕЛЬЗЯ использовать компоненты, которые можно выбирать одновременно с другими в одной группе (например несколько рядом стоящих компонент без флага exclusive), потому что сумма процентов при различном выборе пользователя может отличаться от 100.



Примечание
Стоит упомянуть функцию ISExec, в которой третьим параметром задается время выполнения текущей операции. При автоматической расстановке время на операцию расчитывается приближенное к реальному (при условии, что данная операция не первая, иначе время выполнения берется равное тому, которое было в тестовом проходе). При ручной же расстановке: если машина пользователя быстрее обработает данную операцию, чем расчитано автором инсталла, то прогресс будет немного скачкообразным в моменты переходов между функциями распаковки; если машина пользователя медленнее - прогресс наоборот будет задерживаться между операциями.

Отправлено: 11:17, 31-07-2011 | #2527


Ветеран


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

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


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

Отправлено: 13:32, 31-07-2011 | #2528


Аватара для Rikill

Старожил


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

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


Shegorat, не создаётся

-------
"Око за око приведёт к слепоте мира"- Ганди


Отправлено: 14:13, 31-07-2011 | #2529


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


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

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


помогите пожалуйста!
Как сделать проверку сист требований?

Отправлено: 14:14, 31-07-2011 | #2530



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




 
Переход