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

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

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

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

Ветеран


Contributor


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


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

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


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

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]
Скрипты Inno Setup. Помощь и советы [часть 7]

Отправлено: 08:52, 02-02-2015

 

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


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

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


Цитата El Sanchez:
да легко »
Спасибо большое, протестируем.

Отправлено: 23:28, 03-07-2017 | #1991



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

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


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


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

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


Изображения
Тип файла: png err.png
(21.0 Kb, 8 просмотров)

Прошу помощи, появилась еше одна проблема, может кто сталкивался с подобной.
На кастомной странице инсталлятора есть текстовая информация в ACaption, ASubCaption, ALabel1Caption, ALabel2Caption.
CheckBox для установки ПО. А есть AIconFileName который выводит иконку этого ПО. Раньше проблем не было т.к. использовались
иконки ПО 32х32. Сейчас же необходимо вывести bmp файл вместо иконки, и вот здесь появилась проблема. Указывая размеры bmp-шки
Width := 121;Height := 190; резервируется место для размеров изображения, но само изображение выводится 32х32.
В течение дня танцы с бубном ничего не дали. Есть подозрение что вся проблема из-за идентификатора hIcon который не дает возможности вывести изображение в реальном разрешении. Может быть есть возможность не использовать hIcon и заменить его на простое решение.

Код: Выделить весь код
function CreateCustomOptionPage(AAfterId: Integer; ACaption, ASubCaption, AIconFileName, ALabel1Caption, ALabel2Caption,
  ACheckCaption: String; var CheckBox: TCheckBox): TWizardPage;
var
  Page: TWizardPage;
  Rect: TRect;
  hIcon: LongInt;
  Label1: TNewStaticText; Label2: TNewStaticText;
begin
  Page := CreateCustomPage(AAfterID, ACaption, ASubCaption);
  
  try
    AIconFileName := ExpandConstant('{tmp}\FixitLogo2.bmp');
//ExpandConstant('{tmp}\' + AIconFileName);
    if not FileExists(AIconFileName) then
    ExtractTemporaryFile(ExtractFileName(AIconFileName));

    hIcon := ExtractIcon(GetModuleHandle(0), ExpandConstant('{tmp}\FixitLogo2.bmp'), 0);
 //AIconFileName, 0);
    try
     with TBitmapImage.Create(Page) do begin
        with Bitmap do begin
         Width := 121;
         Height := 190;
         Rect.Right:= 32; 
         Rect.Bottom:= 32; 
         Rect.Left:= 0; 
         Rect.Top:= 0; 
          Canvas.Brush.Color := WizardForm.Color;
          Canvas.FillRect(Rect);
          DrawIconEx(Canvas.Handle, 0, 0, hIcon, 0, 0, 121, 190, DI_NORMAL);
        end;
        Parent := Page.Surface;
      end;
    finally
      DestroyIcon(hIcon);
    end;
  except
  end;

Отправлено: 23:57, 03-07-2017 | #1992


Аватара для ZVSRus

Старожил


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

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


eromunald,

Самое простое решение

Цитата:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Files]
Source: "FixitLogo2.bmp"; DestDir: "{tmp}"; Flags: dontcopy

[code]
var
Page : TWizardPage;
Bitmap : TBitmapImage;
NewCheckBox1 : TNewCheckBox;

procedure InitializeWizard();
begin
Page := CreateCustomPage(wpWelcome, 'FixIt', 'Additional Software Options');

Bitmap := TBitmapImage.Create(WizardForm);
with Bitmap do
begin
Parent := Page.Surface;
SetBounds(ScaleX(0),ScaleY(0),ScaleX(120),ScaleY(120));
ExtractTemporaryFile('FixitLogo2.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\FixitLogo2.bmp'));
end;

NewCheckBox1 := TNewCheckBox.Create(WizardForm);
with NewCheckBox1 do
begin
Parent := Page.Surface;
SetBounds(ScaleX(0),ScaleY(130),ScaleX(215),ScaleY(17));
Caption := 'Здесь название вашего NewCheckBox1';
end;
end;

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode

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

Отправлено: 12:41, 04-07-2017 | #1993


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


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

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


Цитата ZVSRus:
Самое простое решение »
Спасибо большое, это то что надо!

Отправлено: 20:09, 04-07-2017 | #1994


Аватара для OldGamer

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


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

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


Изображения
Тип файла: png Пример.png
(32.8 Kb, 8 просмотров)

Здравствуйте!

Подскажите, пожалуйста, как реализовать следующее:

1) При первом запуске программа создаёт папку с файлами по пути: "C:\Users\Имя пользователя\AppData\Local\папка на удаление".
Нужно, чтобы при деинсталляции программы эта папка была удалена.

2) Нужно, чтобы была страница с выбором из 2-х разных файлов/папок программы, так как во вложении, желательно без картинок.

Последний раз редактировалось OldGamer, 15-07-2017 в 18:01.


Отправлено: 17:56, 15-07-2017 | #1995


Аватара для ZVSRus

Старожил


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

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


OldGamer
Скрытый текст

Код: Выделить весь код
[Setup]
 AppName=My Application
 AppVersion=1.5
 DefaultDirName={pf}\My Application

[Files]
Source: "compiler:Examples\MyProg.exe";     DestDir: "{app}"; Check: PortableCheck; Flags: ignoreversion
Source: "compiler:Examples\MyProg-x64.exe"; DestDir: "{app}"; Check: InstallerCheck; Flags: ignoreversion

[UninstallDelete]
 Type: filesandordirs; Name: "{localappdata}\папка на удаление";

[Code_]
var
  ComponentPage : TWizardPage;
  Installer     : TNewRadioButton;
  Portable      : TNewRadioButton;

function InstallerCheck: Boolean;           
 begin                                      
   Result := Installer.Checked;
 end;                                       

function PortableCheck: Boolean;           
 begin                                      
   Result := Portable.Checked;
 end;                                       

procedure InitializeWizard();
begin
  ComponentPage := CreateCustomPage(wpWelcome, 'Выбор типа установки', 'Выберите тип установки');

  { Installer }
  Installer := TNewRadioButton.Create(WizardForm);
  with Installer do
  begin
    Parent := ComponentPage.Surface;
    SetBounds(ScaleX(0),ScaleY(15),ScaleX(100),ScaleY(17));
    Caption := 'Установка';
    Checked := True;
  end;

  { Portable }
  Portable := TNewRadioButton.Create(WizardForm);
  with Portable do
  begin
    Parent := ComponentPage.Surface;
    SetBounds(ScaleX(0),ScaleY(45),ScaleX(100),ScaleY(17));
    Caption := 'Распаковка';
  end;
end;

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode

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

Отправлено: 23:15, 15-07-2017 | #1996


Аватара для OldGamer

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


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

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


ZVSRus,
Огромное-преогромное Спасибо! Этот скрипт работает! Очень благодарен

Остался "последний штрих" - нужно, чтобы вокруг этих RadioButton был GroupBox с надписью "Версия:".

Последний раз редактировалось OldGamer, 16-07-2017 в 14:08.


Отправлено: 13:56, 16-07-2017 | #1997


SHVtYW4=


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

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


Цитата OldGamer:
нужно, чтобы вокруг этих RadioButton был GroupBox с надписью "Версия:". »
Скрытый текст
Код: Выделить весь код
[Code]
var

  ComponentPage : TWizardPage;
  Installer     : TNewRadioButton;
  Portable      : TNewRadioButton;
  GroupBox: TNewGroupBox;
  
  
function InstallerCheck: Boolean;
 begin
   Result := Installer.Checked;
 end;

function PortableCheck: Boolean;
 begin
   Result := Portable.Checked;
 end;

procedure InitializeWizard();
begin
  ComponentPage := CreateCustomPage(wpWelcome, 'Выбор типа установки', 'Выберите тип установки');


  { GroupBox }
  GroupBox := TNewGroupBox.Create(WizardForm);
  with GroupBox do
  begin
    Parent := ComponentPage.Surface;
    SetBounds(ScaleX(0),ScaleY(0),ScaleX(417),ScaleY(220));
    Caption := 'Версия:';
  end;

  { Installer }
  Installer := TNewRadioButton.Create(WizardForm);
  with Installer do
  begin
    Parent := GroupBox;
    SetBounds(ScaleX(20),ScaleY(35),ScaleX(100),ScaleY(17));
    Caption := 'Установка';
    Checked := True;
  end;

  { Portable }
  Portable := TNewRadioButton.Create(WizardForm);
  with Portable do
  begin
    Parent := GroupBox;
    SetBounds(ScaleX(20),ScaleY(65),ScaleX(100),ScaleY(17));
    Caption := 'Распаковка';
  end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:21, 16-07-2017 | #1998


Аватара для ZVSRus

Старожил


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

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


OldGamer,
Остался "последний штрих"

Цитата:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Files]
Source: "compiler:Examples\MyProg.exe"; DestDir: "{app}"; Check: PortableCheck; Flags: ignoreversion
Source: "compiler:Examples\MyProg-x64.exe"; DestDir: "{app}"; Check: InstallerCheck; Flags: ignoreversion

[UninstallDelete]
Type: filesandordirs; Name: "{app}";
Type: filesandordirs; Name: "{localappdata}\папка на удаление";
Type: filesandordirs; Name: "{userappdata}\папка на удаление";

[code]
var
ComponentPage : TWizardPage;
InstallGroupBox : TNewGroupBox;
Installer : TNewRadioButton;
Portable : TNewRadioButton;

function InstallerCheck: Boolean;
begin
Result := Installer.Checked;
end;

function PortableCheck: Boolean;
begin
Result := Portable.Checked;
end;

procedure InitializeWizard();
begin
ComponentPage := CreateCustomPage(wpWelcome, 'Выбор типа установки', 'Выберите тип установки');

{ InstallGroupBox }
InstallGroupBox := TNewGroupBox.Create(WizardForm);
with InstallGroupBox do
begin
Parent := ComponentPage.Surface;
SetBounds(ScaleX(0),ScaleY(0),ScaleX(210),ScaleY(60));
Caption := 'Выбор типа установки:';
end;

{ Installer }
Installer := TNewRadioButton.Create(WizardForm);
with Installer do
begin
Parent := InstallGroupBox;
SetBounds(ScaleX(5),ScaleY(14),ScaleX(195),ScaleY(17));
Caption := 'Установка обычной версии';
Checked := True;
end;

{ Portable }
Portable := TNewRadioButton.Create(WizardForm);
with Portable do
begin
Parent := InstallGroupBox;
SetBounds(ScaleX(5),ScaleY(36),ScaleX(195),ScaleY(17));
Caption := 'Распаковка портативной версии';
end;
end;

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode

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

Отправлено: 16:54, 16-07-2017 | #1999


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


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

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


Доброго времени суток!

Недавно столкнулся с тем (собственно, мне сообщили об этом, ибо у самого FullHD), что при разрешении 3840x2160 в инсталляторе съезжают кнопки Next и Cancel, а также некоторые кастомные элементы (картинки, текст etc.)...

Скриншот проблемы


Проблема с картинками, я так понимаю, всего лишь из-за того, что картинки маленького разрешения (или нет?). Но что с кнопками Next и Cancel и текстом (мейби сам скин виноват?)? Это можно пофиксить? Прошу помощи!

Инсталлятор у меня без наворотов, разве что установлен скин и произведены некоторые другие легкие модификации.

Если нужно, то вот ссылка на скрипт - https://cloud.mail.ru/public/9Acu/Lt6HGA7hz

Последний раз редактировалось LagunaFAN, 17-07-2017 в 23:36.


Отправлено: 23:26, 17-07-2017 | #2000



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58




 
Переход