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

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

 

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


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

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


Цитата Serega:
Сделал не на WinApi, а с помощью панелей, но обычный Inno не понимает OnMouseDown и OnMouseUp... »
Да я тоже так пытался, только на панели ещё и лейблы натягивал, но у моего и у Вашего варианта есть один и тот-же недостаток, если нажать кнопку, а затем сдвинуть мышей в сторону, она (кнопка) назад уже не отжимается (до следующего нажатия), как это побороть не соображу. Ну вот и думал как-то через API можно.

з.ы. Если интересно вышлю свой пример в личку.

Отправлено: 22:15, 16-10-2009 | #291



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

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


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


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

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


Изображения
Тип файла: png Безымян2ный.png
(270.6 Kb, 120 просмотров)
Тип файла: png Безымянный.png
(263.4 Kb, 64 просмотров)

Привет Всем!Можете сказать скрипт от этой установки

Отправлено: 11:34, 17-10-2009 | #292


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


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

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


Подскажите пожалуйста возможно ли в innosetup изменить диалоговые сообщения в процессе установки приложения. ( Далее, назад завершить и всё такое )?

-------
Bambaso


Отправлено: 21:38, 17-10-2009 | #293


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


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

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


Цитата Bambaso:
Подскажите пожалуйста возможно ли в innosetup изменить диалоговые сообщения в процессе установки приложения. ( Далее, назад завершить и всё такое )? »
Конечно, возможно.

Отправлено: 22:08, 17-10-2009 | #294


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


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

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


Подскажите пожалуйста,есть запакованные файлы в архив 7z хотелось бы прикрутить установщик что бы распаковывал это архив в ту директорию которую выбераешь в установщике.

Отправлено: 11:43, 18-10-2009 | #295


Ветеран


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

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


Цитата serg aka lain:
но у моего и у Вашего варианта есть один и тот-же недостаток, если нажать кнопку, а затем сдвинуть мышей в сторону, она (кнопка) назад уже не отжимается (до следующего нажатия), как это побороть не соображу »
Я тоже не мог сразу сообразить, но вот в итоге, что вышло :
Пример
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

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

[Code]
var
  Backbtn, Nextbtn, Cancelbtn: TPanel;

procedure MouseDown(Sender: TObject; TButton: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  TPanel(Sender).BorderStyle:= bsSingle;
end;

procedure MouseUp(Sender: TObject; TButton: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  TPanel(Sender).BorderStyle:= bsNone;
end;

procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  case TWinControl(Sender) of
    WizardForm:
      begin
        Backbtn.BorderStyle:= bsNone;
        Nextbtn.BorderStyle:= bsNone;
        Cancelbtn.BorderStyle:= bsNone;
      end;
  end;
end;

procedure Click(Sender: TObject);
begin
  case TPanel(Sender) of
    Backbtn: WizardForm.BackButton.OnClick(WizardForm.BackButton);
    Nextbtn: WizardForm.NextButton.OnClick(WizardForm.NextButton);
    Cancelbtn:
      begin
        Cancelbtn.BorderStyle:= bsNone;
        WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
      end;
  end;
end;

procedure InitializeWizard;
begin
  WizardForm.OnMouseMove:= @MouseMove;
  Backbtn:= TPanel.Create(WizardForm.BackButton);
  with Backbtn do
    begin
      SetBounds(WizardForm.BackButton.Left, WizardForm.BackButton.Top,
                WizardForm.BackButton.Width, WizardForm.BackButton.Height);
      BorderStyle:= bsNone;
      OnClick:= @Click;
      OnMouseDown:= @MouseDown;
      OnMouseUp:= @MouseUp;
      Parent:= WizardForm;
    end;
  Nextbtn:= TPanel.Create(WizardForm.NextButton);
  with Nextbtn do
    begin
      SetBounds(WizardForm.NextButton.Left, WizardForm.NextButton.Top,
                WizardForm.NextButton.Width, WizardForm.NextButton.Height);
      BorderStyle:= bsNone;
      OnClick:= @Click;
      OnMouseDown:= @MouseDown;
      OnMouseUp:= @MouseUp;
      Parent:= WizardForm;
    end;
  Cancelbtn:= TPanel.Create(WizardForm.NextButton);
  with Cancelbtn do
    begin
      SetBounds(WizardForm.CancelButton.Left, WizardForm.CancelButton.Top,
                WizardForm.CancelButton.Width, WizardForm.CancelButton.Height);
      BorderStyle:= bsNone;
      OnClick:= @Click;
      OnMouseDown:= @MouseDown;
      OnMouseUp:= @MouseUp;
      Parent:= WizardForm;
    end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  Backbtn.Caption:= WizardForm.BackButton.Caption;
  Backbtn.Visible:= WizardForm.BackButton.Visible;
  Nextbtn.Caption:= WizardForm.NextButton.Caption;
  Nextbtn.Visible:= WizardForm.NextButton.Visible;
  Cancelbtn.Caption:= WizardForm.CancelButton.Caption;
  Cancelbtn.Visible:= WizardForm.CancelButton.Visible;
end;


Цитата Bambaso:
изменить диалоговые сообщения в процессе установки приложения »
Сформулируйте более точнее, что вы хотите сделать.

Цитата SinCore:
запакованные файлы в архив 7z хотелось бы прикрутить установщик что бы распаковывал »
В шапке есть Inno Setup Scripting 5.1 - руководство по расширенным возможностям Inno Setup от Kindly, там есть примеры для работы с 7z.

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

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

Отправлено: 14:44, 18-10-2009 | #296


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


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

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


Serega, благодарю за желание помочь.
Я тоже нашёл неплохой вариант, адаптировал под свои нужды всем известный код, с текстурными кнопками.
Получилось вроде-бы не плохо.
И самое для меня главное, он должен работать в любой версии Inno

предлагаю взглянуть

Код: Выделить весь код
; Inno Setup Compiler 5.3.5 (ansi & unicode)
; = Emulation of switching-off of style XP =
; http://forum.oszone.net/   <serg aka lain>

[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
LicenseFile=compiler:License.txt
OutputDir=userdocs:My Program.

[code]

const
  RGN_DIFF = 4;
  RADIUS = 1;
  bidBack = 0;
  bidNext = 1;
  bidCancel = 2;
  bidDirBrowse = 3;
  bidGroupBrowse = 4;

function CreateRoundRectRgn(p1, p2, p3, p4, p5, p6: Integer): THandle;
 external 'CreateRoundRectRgn@gdi32 stdcall';
function CombineRgn(p1, p2, p3: THandle; p4: Integer): Integer;
 external 'CombineRgn@gdi32 stdcall';
function SetWindowRgn(hWnd: HWND; hRgn: THandle; bRedraw: Boolean): Integer;
 external 'SetWindowRgn@user32 stdcall';

var
  FormRegion, InnerRegion: tHandle;
  Panel: TPanel;
  ButtonPanel: array [0..4] of TPanel;
  ButtonLabel: array [0..4] of TLabel;

procedure ShapeForm(aForm : TForm; edgeSize : integer);
begin
  FormRegion := CreateRoundRectRgn(0, 0, aForm.width, aForm.height, edgeSize, edgeSize);
  CombineRgn(FormRegion, FormRegion, InnerRegion, RGN_DIFF);
  SetWindowRgn(aForm.Handle, FormRegion, True);
end;

procedure ButtonLabelClick(Sender: TObject);
var
  Button: TButton;
begin
  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
  ButtonPanel[TLabel(Sender).Tag].BorderStyle := bsSingle;
end;

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

procedure LabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  ButtonPanel[TLabel(Sender).Tag].BorderStyle := bsSizeable;
end;

procedure LoadButton(AButton: TButton; AButtonIndex: integer);
var
  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.BorderStyle := bsSizeable;
  Panel.Parent := AButton.Parent;
  ButtonPanel[AButtonIndex] := Panel;

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

  Labl := TLabel.Create(WizardForm);
  Labl.Width := Panel.Width - ScaleX(10);
  Labl.Height := Panel.Height - ScaleY(10);
  Labl.Alignment := taCenter;
  Labl.Autosize := False;
  Labl.Font.Color := clBlack;
  Labl.Caption := AButton.Caption;
  Labl.OnClick := @ButtonLabelClick;
  Labl.OnDblClick := @ButtonLabelClick;
  Labl.OnMouseDown := @ButtonLabelMouseDown;
  Labl.OnMouseUp := @ButtonLabelMouseUp;
  Labl.Cursor := crHand;
  Labl.Tag := AButtonIndex;
  Labl.Transparent := True;
  ButtonLabel[AButtonIndex] := Labl;
  Labl.Parent := Panel;
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
  ShapeForm(WizardForm, RADIUS);

  WizardForm.LicenseAcceptedRadio.OnClick := @LicenceAcceptedRadioOnClick;
  WizardForm.LicenseNotAcceptedRadio.OnClick := @LicenceNotAcceptedRadioOnClick;

  LoadButton(WizardForm.BackButton,bidBack);
  LoadButton(WizardForm.NextButton,bidNext);
  LoadButton(WizardForm.CancelButton,bidCancel);
  LoadButton(WizardForm.DirBrowseButton,bidDirBrowse);
  LoadButton(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[bidBack].Top := ButtonPanel[bidBack].Height div 2 - ButtonLabel[bidBack].Height div 2;
  ButtonLabel[bidNext].Left := ButtonPanel[bidNext].Width div 2 - ButtonLabel[bidNext].Width div 2;
  ButtonLabel[bidNext].Top := ButtonPanel[bidNext].Height div 2 - ButtonLabel[bidNext].Height div 2;
  ButtonLabel[bidCancel].Left := ButtonPanel[bidCancel].Width div 2 - ButtonLabel[bidCancel].Width div 2;
  ButtonLabel[bidCancel].Top := ButtonPanel[bidCancel].Height div 2 - ButtonLabel[bidCancel].Height div 2;
  ButtonLabel[bidDirBrowse].Left := ButtonPanel[bidDirBrowse].Width div 2 - ButtonLabel[bidDirBrowse].Width div 2;
  ButtonLabel[bidDirBrowse].Top := ButtonPanel[bidDirBrowse].Height div 2 - ButtonLabel[bidDirBrowse].Height div 2;
  ButtonLabel[bidGroupBrowse].Left := ButtonPanel[bidGroupBrowse].Width div 2 - ButtonLabel[bidGroupBrowse].Width div 2;
  ButtonLabel[bidGroupBrowse].Top := ButtonPanel[bidGroupBrowse].Height div 2 - ButtonLabel[bidGroupBrowse].Height div 2;
end;

Последний раз редактировалось serg aka lain, 18-10-2009 в 20:07.

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

Отправлено: 19:54, 18-10-2009 | #297


Ветеран


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

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


Цитата serg aka lain:
И самое для меня главное, он должен работать в любой версии Inno »
Согласен, интересный подход

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


Отправлено: 20:38, 18-10-2009 | #298


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


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

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


Подскажите пожалуйста,как как разделить архив на тома во FreeArc по 700mb

Отправлено: 05:29, 19-10-2009 | #299


Аватара для Krekerpro

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


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

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


День добрый,хотелось бы узнать,как сделать прозрачный фон на картинке в левом нижнем углу http://clip2net.com/clip/m0/1255946027-clip-124kb.jpg.
Используется этот скрипт-http://forum.oszone.net/post-1241284-239.html

Отправлено: 13:54, 19-10-2009 | #300



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




 
Переход