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

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


Sotonisto
читать дальше »
[Types]
Name: custom; Description: Выборочная установка; Flags: iscustom

[Components]
Name: lng; Description: Выбор Озвучки; Flags: fixed; Types: custom
Name: lng/ru; Description: Русская; Flags: exclusive
Name: lng/en; Description: English; Flags: exclusive

[Files]
Source: C:\ENG\*; DestDir: {app}\audio\speech; Components: lng/en; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs
Source: C:\Rus\*; DestDir: {app}\audio\speech; Components: lng/ru; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs


Jerichoman
как всю папку прекомпом жать я пока не знаю, а сжимать лучше игровые архивы, видео и звук бесполезно...
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:47, 24-01-2010 | #931



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

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


Аватара для Sotonisto

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


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

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


Цитата Tukash:
Sotonisto
читать дальше » »
Это для стандартного инсталла подходит, но тут нельзя создать еще одну страницу

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


Отправлено: 11:21, 24-01-2010 | #932


Аватара для Tukash

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


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

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


Цитата Tukash:Sotonisto
читать дальше » »

Это для стандартного инсталла подходит, но тут нельзя создать еще одну страницу

хмм, но ведь можно этот скрипт прелепить к твоим текстурам, и получиться то что ты хочешь, только как, я не знаю)))

Отправлено: 11:24, 24-01-2010 | #933


Аватара для Sotonisto

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


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

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


Цитата Tukash:
хмм, но ведь можно этот скрипт прелепить к твоим текстурам, и получиться то что ты хочешь, только как, я не знаю))) »
во во и я о том же
P.S.: у меня и так был такой скрипт

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


Отправлено: 11:32, 24-01-2010 | #934


Аватара для svensoft

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


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

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


Вложения
Тип файла: txt скрипт.txt
(2.4 Kb, 12 просмотров)

люди шарящие, ну помогите разобраться !!! Сценарий следующий : при открытии инсталлятора делается эмуляция отключения страниц приветствия "Welcome", выбора пути установки , вообщем сразу перепрыгиваем на страницу "Ready". Очень хочется включить на этой странице эффект ввода текста "печатной машинки". Есть алгоритм того-же действия, но на странице "Welcome". Всвязи с этим вопрос, какие парамметры надо вставить в код вместо : WelcomeLabel1, WelcomeLabel2, WelcomePage, так как действие происходит на странице "Ready" - надписи "Все готово к установке", "Программа установки готова начать установку ХХХ на ваш компьютер", "нажмите установить чтобы продолжить", пробовал заменить ReadyLabel1,ReadyLabel2, ReadyPage - ругается ?...

Вот код :

Отправлено: 13:59, 24-01-2010 | #935


Аватара для svensoft

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


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

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


Цитата svensoft:
люди шарящие, ну помогите разобраться !!! Сценарий следующий : при открытии инсталлятора делается эмуляция отключения страниц приветствия "Welcome", выбора пути установки , вообщем сразу перепрыгиваем на страницу "Ready". Очень хочется включить на этой странице эффект ввода текста "печатной машинки". Есть алгоритм того-же действия, но на странице "Welcome". Всвязи с этим вопрос, какие парамметры надо вставить в код вместо : WelcomeLabel1, WelcomeLabel2, WelcomePage, так как действие происходит на странице "Ready" - надписи "Все готово к установке", "Программа установки готова начать установку ХХХ на ваш компьютер", "нажмите установить чтобы продолжить", пробовал заменить ReadyLabel1,ReadyLabel2, ReadyPage - ругается ?... »

Извиняюсь, все уже сделал, уже не надо..

Но вот теперь другой вопрос появился на повестке дня, можно ли сделать так чтобы в инсталляторе с помощью bass.dll не только играла фоновая музыка (которая стартует при открытии и обрывается при завершения установки), а еще и при нажатие на педали проигрывались тоже мп3, не обрывая фоновую музыку ?.. Была такая мысль две bass.dl кидать в инсталлятор и потом для каждой прописать отдельный код (так как одна будет занята фоновой музыкой), но может как-то с помощью одной можно сделать ?..

Последний раз редактировалось svensoft, 24-01-2010 в 14:34. Причина: ошибки


Отправлено: 14:09, 24-01-2010 | #936


Аватара для YURSHAT

Старожил


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

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


Цитата svensoft:
при нажатие на педали проигрывались тоже мп3, »
При нажатии на педали вовсе не нужно использовать Bass , можно проигрывать музыку через винду.

Код: Выделить весь код
function mciSendString(lpstrCommand, lpstrReturnString: PAnsiChar; uReturnLength: Cardinal; hWndCallback: HWND): Cardinal; external 'mciSendStringA@winmm.dll stdcall';

procedure нажатие на педаль;
begin
  mciSendString('stop '+ExpandConstant('{tmp}\click.wav'), 'NULL', 0, 0);
  mciSendString('play '+ExpandConstant('{tmp}\click.wav'), 'NULL', 0, 0);
end;

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

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

Отправлено: 14:50, 24-01-2010 | #937


Аватара для svensoft

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


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

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


Цитата YURSHAT:
При нажатии на педали вовсе не нужно использовать Bass , можно проигрывать музыку через винду. »
YURSHAT
О, и здесь ты рулишь !!! Спасибо еще раз, прямо сегодня праздник ты мне подарил в разбирание скриптов !!!..А вот если такой вариант : Играет уже фоновая музыка и при открытие страницы Ready надо включить озвучку "мой ля ля " (mp3), и как только пользователь жмет "Установить" мой ля ля обрывается, но фоновая музыка остается играть. Можно ли так сделать вообще ?..

================================
Где бы почитать синтаксис inno setup ?..

Отправлено: 15:08, 24-01-2010 | #938


Аватара для YURSHAT

Старожил


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

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


Цитата svensoft:
Можно ли так сделать вообще ?.. »
Легко.
Пример
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=userdocs:My Program.

[Files]
Source: "button.bmp"; Flags: dontcopy;
Source: "click.wav"; Flags: dontcopy;          
Source: "sound.mp3"; Flags: dontcopy;

[Code_]
const
  ButtonWidth = 80;
  ButtonHeight = 23;
  bidBack = 0;
  bidNext = 1;
  bidCancel = 2;
  bidDirBrowse = 3;
  bidGroupBrowse = 4;

#ifdef UNICODE
    #define A "W"
#else
    #define A "A"
#endif

function mciSendString(lpstrCommand, lpstrReturnString: PAnsiChar; uReturnLength: Cardinal; hWndCallback: HWND): Cardinal;
  external 'mciSendStringA@winmm.dll stdcall';

var
  ButtonPanel: array [0..4] of TPanel;
  ButtonImage: array [0..4] of TBitmapImage;
  ButtonLabel: array [0..4] of TLabel;

procedure ButtonLabelClick(Sender: TObject);
var
  Button: TButton;
begin
  ButtonImage[TLabel(Sender).Tag].Left := 0;
  mciSendString('stop '+ExpandConstant('{tmp}\click.wav'), 'NULL', 0, 0);
  mciSendString('play '+ExpandConstant('{tmp}\click.wav'), 'NULL', 0, 0);
  case TLabel(Sender).Tag of
    bidBack: Button := WizardForm.BackButton;
    bidNext: Button := WizardForm.NextButton;
    bidCancel: Button := WizardForm.CancelButton;
    bidDirBrowse: Button := WizardForm.DirBrowseButton;
    bidGroupBrowse: Button := WizardForm.GroupBrowseButton;
  else
    Exit
  end
  Button.OnClick(Button);
end;

procedure ButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if ButtonLabel[TLabel(Sender).Tag].Enabled then
     ButtonImage[TLabel(Sender).Tag].Left := -ScaleX(ButtonWidth);
end;

procedure ButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ButtonImage[TLabel(Sender).Tag].Left := 0;
end;

procedure LoadButtonImage(AButton: TButton; AButtonIndex: integer);
var
  Image: TBitmapImage;
  Panel: TPanel;
  Labl: TLabel;
begin
  Panel := TPanel.Create(WizardForm);
  Panel.Left := AButton.Left;
  Panel.Top := AButton.Top;
  Panel.Width := AButton.Width;
  Panel.Height := AButton.Height;
  Panel.Tag := AButtonIndex;
  Panel.Parent := AButton.Parent;
  ButtonPanel[AButtonIndex] := Panel;

  Image := TBitmapImage.Create(WizardForm);
  Image.Width := ScaleX(160);
  Image.Height := ScaleY(23);
  Image.Enabled := False;
  Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\button.bmp'));
  Image.Stretch := True;
  Image.Parent := Panel;
  ButtonImage[AButtonIndex] := Image;

  with TLabel.Create(WizardForm) do begin
    Tag := AButtonIndex;
    Parent := Panel;
    Width := Panel.Width;
    Height := Panel.Height;
    Transparent := True;
    OnClick := @ButtonLabelClick;
    OnDblClick := @ButtonLabelClick;
    OnMouseDown := @ButtonLabelMouseDown;
    OnMouseUp := @ButtonLabelMouseUp;
  end;

  Labl := TLabel.Create(WizardForm);
  Labl.Top := ScaleY(ButtonHeight) div 5;
  Labl.Autosize := True;
  Labl.Alignment := taCenter;
  Labl.Tag := AButtonIndex;
  Labl.Transparent := True;
  Labl.Font.Color := clWhite;
  Labl.Caption := AButton.Caption;
  Labl.OnClick := @ButtonLabelClick;
  Labl.OnDblClick := @ButtonLabelClick;
  Labl.OnMouseDown := @ButtonLabelMouseDown;
  Labl.OnMouseUp := @ButtonLabelMouseUp;
  Labl.Parent := Panel;
  ButtonLabel[AButtonIndex] := Labl;
end;

procedure UpdateButton(AButton: TButton;AButtonIndex: integer);
begin
  ButtonLabel[AButtonIndex].Caption := AButton.Caption;
  ButtonPanel[AButtonIndex].Visible := AButton.Visible;
  ButtonLabel[AButtonIndex].Enabled := Abutton.Enabled;
end;

procedure LicenceAcceptedRadioOnClick(Sender: TObject);
begin
  ButtonLabel[bidNext].Enabled := True;
end;

procedure LicenceNotAcceptedRadioOnClick(Sender: TObject);
begin
  ButtonLabel[bidNext].Enabled := False;
end;

procedure InitializeWizard();
begin
  ExtractTemporaryFile('button.bmp');
  ExtractTemporaryFile('click.wav');
  ExtractTemporaryFile('sound.mp3');

  WizardForm.BackButton.Left := WizardForm.BackButton.Left - ScaleX(7);
  WizardForm.BackButton.Width := ScaleX(ButtonWidth);
  WizardForm.BackButton.Height := ScaleY(ButtonHeight);

  WizardForm.NextButton.Width := ScaleX(ButtonWidth);
  WizardForm.NextButton.Height := ScaleY(ButtonHeight);

  WizardForm.CancelButton.Width := ScaleX(ButtonWidth);
  WizardForm.CancelButton.Height := ScaleY(ButtonHeight);

  WizardForm.DirBrowseButton.Left := ScaleX(337);
  WizardForm.DirBrowseButton.Top := WizardForm.DirEdit.Top + WizardForm.DirEdit.Height div 2 - ScaleY(ButtonHeight) div 2;
  WizardForm.DirBrowseButton.Width := ScaleX(ButtonWidth);
  WizardForm.DirBrowseButton.Height := ScaleY(ButtonHeight);

  WizardForm.GroupBrowseButton.Left := ScaleX(337);
  WizardForm.GroupBrowseButton.Top := WizardForm.GroupEdit.Top + WizardForm.GroupEdit.Height div 2 - ScaleY(ButtonHeight) div 2;
  WizardForm.GroupBrowseButton.Width := ScaleX(ButtonWidth);
  WizardForm.GroupBrowseButton.Height := ScaleY(ButtonHeight);

  WizardForm.LicenseAcceptedRadio.OnClick := @LicenceAcceptedRadioOnClick;

  WizardForm.LicenseNotAcceptedRadio.OnClick := @LicenceNotAcceptedRadioOnClick;

  LoadButtonImage(WizardForm.BackButton,bidBack);
  LoadButtonImage(WizardForm.NextButton,bidNext);
  LoadButtonImage(WizardForm.CancelButton,bidCancel);
  LoadButtonImage(WizardForm.DirBrowseButton,bidDirBrowse);
  LoadButtonImage(WizardForm.GroupBrowseButton,bidGroupBrowse);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  UpdateButton(WizardForm.BackButton,bidBack);
  UpdateButton(WizardForm.NextButton,bidNext);
  UpdateButton(WizardForm.CancelButton,bidCancel);

  ButtonLabel[bidBack].Left := ButtonPanel[bidBack].Width div 2 - ButtonLabel[bidBack].Width div 2;
  ButtonLabel[bidNext].Left := ButtonPanel[bidNext].Width div 2 - ButtonLabel[bidNext].Width div 2;
  ButtonLabel[bidCancel].Left := ButtonPanel[bidCancel].Width div 2 - ButtonLabel[bidCancel].Width div 2;
  ButtonLabel[bidDirBrowse].Left := ButtonPanel[bidDirBrowse].Width div 2 - ButtonLabel[bidDirBrowse].Width div 2;
  ButtonLabel[bidGroupBrowse].Left := ButtonPanel[bidGroupBrowse].Width div 2 - ButtonLabel[bidGroupBrowse].Width div 2;

  if CurPageID = wpReady then
begin
  mciSendString('play '+ExpandConstant('{tmp}\sound.mp3'), 'NULL', 0, 0);
end;

if CurPageID = wpInstalling then
begin
  mciSendString('stop '+ExpandConstant('{tmp}\sound.mp3'), 'NULL', 0, 0);
end;
end;

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

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

Отправлено: 16:27, 24-01-2010 | #939


Аватара для svensoft

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


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

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


Цитата YURSHAT:
Легко. »
YURSHAT, Здорово !!! Большое, большое спасибо !!! Прямо слов нет, один восторг....))

Отправлено: 18:42, 24-01-2010 | #940



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




 
Переход