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

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

 

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


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

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


Добрый день! перерыл кучу информации, но так и не смог найти внятного ответа на свой вопрос: как изменить расположение кнопки "Завершить"?
помогите пожалуйста

Отправлено: 15:18, 27-12-2010 | #281



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

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


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


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

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


Подскажите пожалуйста, как работать с precomp?
Если можно пример скрипта или статью
В инете нашёл только пример в библиотеке и всё(((

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)


Отправлено: 15:27, 27-12-2010 | #282


Аватара для nik1967

Старожил


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

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


potan,
Например
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program

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

[_Code]
Procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpFinished then
  WizardForm.NextButton.Left:= WizardForm.NextButton.Left -100;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:52, 27-12-2010 | #283


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


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

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


nik1967,
Супер! спасибо большое!

Отправлено: 16:00, 27-12-2010 | #284


Аватара для nik1967

Старожил


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

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


actavir,
Можешь посмотреть тут.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:18, 27-12-2010 | #285


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


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

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


ksunechkin, serg aka lain, такой вариант еще можно, ток вот картинка остаеться(
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program

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

[CustomMessages]
HeaderLabelPage=Выберите тип установки
MyRadioCaption_1=Обычная установка
MyRadioCaption_2=Выборочная установка
PageTextHeader=На этой странице Вы можете выбрать тип установки, который для Вас наиболее удобен.
MyText_1=Установка будет произведена полностью в автоматическом режиме.%n(Подходит для не подготовленных пользователей)
MyText_2=Будет предложен выбор директории установки.%n(Для продвинутых пользователей)
MyText_0=Наведите курсор мыши на тип установки, чтобы прочесть его описание.


[_code]
const
   DI_NORMAL = 3;

var
  MyNewPage: TWizardPage;
  Rect: TRect;
  HIcon: LongInt;
  AIconFileName: String;
  MyRadioBtn_1, MyRadioBtn_2: TNewRadioButton;
  Text: TNewStaticText;
  NoChecks: TLabel;

function GetModuleHandle(lpModuleName: LongInt): LongInt;
 external 'GetModuleHandleA@kernel32.dll stdcall';
function ExtractIcon(hInst: LongInt; lpszExeFileName: AnsiString; nIconIndex: LongInt): LongInt;
 external 'ExtractIconA@shell32.dll stdcall';
function DrawIconEx(hdc: LongInt; xLeft, yTop: Integer; hIcon: LongInt; cxWidth,
       cyWidth: Integer; istepIfAniCur: LongInt; hbrFlickerFreeDraw, diFlags: LongInt): LongInt;
 external 'DrawIconEx@user32.dll stdcall';
function DestroyIcon(hIcon: LongInt): LongInt;
 external 'DestroyIcon@user32.dll stdcall';

procedure Check1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text.Enabled:=True
Text.Caption:=ExpandConstant('{cm:MyText_1}')
try
    AIconFileName := ExpandConstant('{sys}\shell32.dll');

    Rect.Left := 0;
    Rect.Top := 0;
    Rect.Right := 32;
    Rect.Bottom := 32;
    
    hIcon := ExtractIcon(GetModuleHandle(0), AIconFileName, 26);
    try
      with TBitmapImage.Create(WizardForm) do
      begin
        Left := ScaleX(15);
        Top := ScaleY(130);
        Width := 32;
        Height := 32;
        with Bitmap do
        begin
          Width := 32;
          Height := 32;
          Canvas.Brush.Color := clBtnFace;
          Canvas.FillRect(Rect);
          DrawIconEx(Canvas.Handle, 0, 0, HIcon, 32, 32, 0, 0, DI_NORMAL);
        end;
        Parent := MyNewPage.Surface;
      end;
     finally
     DestroyIcon(hIcon);
    end;
  except
  end;
end;

procedure Check2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text.Enabled:=True
Text.Caption:=ExpandConstant('{cm:MyText_2}')
try
    AIconFileName := ExpandConstant('{sys}\shell32.dll');

    Rect.Left := 0;
    Rect.Top := 0;
    Rect.Right := 32;
    Rect.Bottom := 32;

    hIcon := ExtractIcon(GetModuleHandle(0), AIconFileName, 19);
    try
      with TBitmapImage.Create(WizardForm) do
      begin
        Left := ScaleX(15);
        Top := ScaleY(130);
        Width := 32;
        Height := 32;
        with Bitmap do
        begin
          Width := 32;
          Height := 32;
          Canvas.Brush.Color := clBtnFace;
          Canvas.FillRect(Rect);
          DrawIconEx(Canvas.Handle, 0, 0, HIcon, 32, 32, 0, 0, DI_NORMAL);
        end;
        Parent := MyNewPage.Surface;
      end;
     finally
     DestroyIcon(hIcon);
    end;
  except
  end;
end;

procedure NoChecksMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text.Enabled:=False
Text.Caption:=ExpandConstant('{cm:MyText_0}')
end;


procedure GetInstTypePage();
begin
  MyNewPage := CreateCustomPage(wpWelcome,
    ExpandConstant('{cm:HeaderLabelPage}'), '');


  with TNewStaticText.Create(WizardForm) do
  begin
    Width := WizardForm.InnerNotebook.Width;
    Height := ScaleY(26);
    WordWrap := True;
    Caption := ExpandConstant('{cm:PageTextHeader}');
    Parent := MyNewPage.Surface;
  end;

  MyRadioBtn_1 := TNewRadioButton.Create(WizardForm);
  with MyRadioBtn_1 do
  begin
    Top := ScaleY(50);
    Width := ScaleX(150);
    Caption := ExpandConstant('{cm:MyRadioCaption_1}');
    Checked := True;
    Parent := MyNewPage.Surface;
    OnMouseMove:=@Check1MouseMove
  end;

  MyRadioBtn_2 := TNewRadioButton.Create(WizardForm);
  with MyRadioBtn_2 do
  begin
    Top := ScaleY(70);
    Width := ScaleX(150);
    Caption := ExpandConstant('{cm:MyRadioCaption_2}');
    Parent := MyNewPage.Surface;
    OnMouseMove:=@Check2MouseMove
  end;


end;

Procedure InitializeWizard();
begin
begin
  GetInstTypePage();
end;
begin
  Text:=TNewStaticText.Create(WizardForm)
  Text.Left := ScaleX(60);
  Text.Top := ScaleY(138);
  Text.Width := WizardForm.InnerNotebook.Width - ScaleX(60);
  Text.Height := ScaleY(26);
  Text.WordWrap := True;
  Text.Parent := MyNewPage.Surface;
end;
begin
  NoChecks:=TLabel.Create(WizardForm)
  NoChecks.Width:=WizardForm.Width
  NoChecks.Height:=WizardForm.Height
  NoChecks.Autosize:=False
  NoChecks.Transparent:=True
  NoChecks.OnMouseMove:=@NoChecksMouseMove
  NoChecks.Parent:=MyNewPage.Surface
end;
end;


function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if (PageID >= wpSelectDir) and (PageID < wpReady) and (MyRadioBtn_1.Checked) then
     Result := True;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:55, 27-12-2010 | #286


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


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

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


Подскажите ещё пожалуйста как поставить картинку на фон инсталятора. Смотрел различные скрипты ничё не понял.
Я только начал разбираться в этом.
Заранее благодарен.

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)


Отправлено: 18:31, 27-12-2010 | #287


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


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

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


actavir, ты на всю страницу хочешь или обычную?

Отправлено: 18:39, 27-12-2010 | #288


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


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

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


как понять на всю страницу (на весь экран) или на форму инсталятора?
>>на форму инсталятора

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)


Отправлено: 18:42, 27-12-2010 | #289


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


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

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


actavir, вот отсюда взять можно

или вот
для страницы приветствия (по аналогии можно и для финишной написать)
Код: Выделить весь код
[Files]
Source: fon.bmp; DestDir: {tmp}; Flags: dontcopy
[_code]
var
WelcomeLabel1, WelcomeLabel2: TLabel;
BmpFile: TBitmapImage;

procedure InitializeWizard();
begin
ExtractTemporaryFile('fon.bmp');

BmpFile:= TBitmapImage.Create(WizardForm);
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\fon.bmp'));
BmpFile.SetBounds(0, 0, 497, 320);
BmpFile.Stretch:= true
BmpFile.Parent:= WizardForm.WelcomePage;

with WizardForm do
begin
WelcomeLabel1.Hide;
WelcomeLabel2.hide;
end;

WelcomeLabel1:= TLabel.Create(WizardForm);
with WelcomeLabel1 do
begin
WelcomeLabel1.Alignment:=taCenter;
Left:= ScaleX(110);
Top:= ScaleY(50);
Width:= ScaleX(301);
Height:= ScaleY(71);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Tahoma'
Font.Size:= 14;
Font.Color:=ClGray
Parent:= WizardForm.WelcomePage;
Caption:= WizardForm.WelcomeLabel1.Caption;
end;

WelcomeLabel2:=TLabel.Create(WizardForm);
with WelcomeLabel2 do
begin
WelcomeLabel2.Alignment:=taCenter;
Top:= ScaleY(130);
Left:= ScaleX(110);
Width:= ScaleX(280);
Height:= ScaleY(310);
AutoSize:= false;
WordWrap:= true;
Font.Name:='Tahoma'
Font.Size:= 10;
Font.Color:=ClWhite
Transparent:= true;
Parent:= WizardForm.WelcomePage;
Caption:= WizardForm.WelcomeLabel2.Caption;
end;
end;

Последний раз редактировалось Imitri7, 27-12-2010 в 19:02.

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

Отправлено: 18:48, 27-12-2010 | #290



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




 
Переход