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

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

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

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

Ветеран


Contributor


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


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

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


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



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

Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z
Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z
Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:09, 04-04-2018

 

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


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

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


Привет всем. Как можно определить системный диск ({sd}) ssd или hdd.
Что-то вроде этого:
Код: Выделить весь код
     if ssd then
         ....
     else
         ....
   end
El Sanchez,
Цитата:
прилипание мастер формы к краям экрана
Отличный скрипт. Спасибо.

Хмм... нашёл пока на AutoIt3 (в.3.3.14.2) подогнал под себя, вроде работает. Может кому пригодится для установки Windows.
Код: Выделить весь код
#NoTrayIcon
$Gui = @SW_HIDE

; Some constants
Const $DT_DRIVETYPE = 1
Const $DT_SSDSTATUS = 2
Const $DT_BUSTYPE = 3

; Drive letter to check
Const $DriveLetter = @homedrive;

$ssd = DriveGetType($DriveLetter, $DT_SSDSTATUS)
If $ssd <> "" Then 
    Run(@ComSpec & ' /C ssd.bat', '', @SW_HIDE) ;@SW_SHOW
    Else
   Exit
EndIf
Хотелось бы на Inno но... на безрыбье .... )

Последний раз редактировалось ABBAT, 05-04-2018 в 16:39.

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

Отправлено: 21:00, 04-04-2018 | #2



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

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


Аватара для TheLeon

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


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

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


habib2302,
Цитата:
Из кода удалите строку WizardForm.TypesCombo.Visible := False;. В строке WizardForm.ComponentsList.Top := ScaleX(15); замените на 26 и добавьте эту строку в InitializeWizard WizardForm.TypesCombo.Top := ScaleY(0);
Спасибо, выбор типа установки работает, правда, возникла другая проблема: половину вкладки выбора закрывает задний фон, хотя сделал всё, как вы сказали. Это придётся мне уменьшать размер списка компонентов и превью компонента?
Файл 152052

Последний раз редактировалось TheLeon, 06-04-2018 в 15:26.


Отправлено: 20:38, 05-04-2018 | #3


Аватара для habib2302

Ветеран


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

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


Цитата TheLeon:
Это придётся мне уменьшать размер списка компонентов и превью компонента? »
да.

-------
Помог? От "Полезное сообщение" не откажусь!!!

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

Отправлено: 20:51, 05-04-2018 | #4


Аватара для TheLeon

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


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

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


Изображения
Тип файла: png Снимок.PNG
(1.8 Kb, 49 просмотров)
Тип файла: png Снимок2.PNG
(2.2 Kb, 30 просмотров)
Тип файла: png Снимок3.PNG
(1.9 Kb, 30 просмотров)

habib2302, ещё раз здравствуй, возникла проблема с надписью "Сделано кем-то..." и т.д., с каждым переходом на следующую страницу накладывается слой этого же текста..
Секция CODE
пусто


А также второй вопрос: сделал, как вы сказали, сместил список компонентов и их превью, но все равно половину вкладки выбора типа установки перекрывает. Скорее всего это место было для инструкции, пример: "выберите из списка нужный компонент....", если это так, то можно ли это убрать? Заранее спасибо.

Последний раз редактировалось TheLeon, 07-04-2018 в 21:30.


Отправлено: 16:10, 06-04-2018 | #5


Аватара для habib2302

Ветеран


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

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


Цитата TheLeon:
А также второй вопрос: сделал, как вы сказали, сместил список компонентов и их превью, но все равно половину вкладки выбора типа установки перекрывает. Скорее всего это место было для инструкции, пример: "выберите из списка нужный компонент....", если это так, то можно ли это убрать? Заранее спасибо. »
добавьте в InitializeWizard эту строку WizardForm.SelectComponentsLabel.Hide
Цитата TheLeon:
возникла проблема с надписью "Сделано кем-то..." и т.д., с каждым переходом на следующую страницу накладывается слой этого же текста.. »
у вас же в примере все понятно расписано.
Код: Выделить весь код
Label1 := TLabel.Create(WizardForm);
with Label1 do
begin
Parent := WizardForm;
Caption := 'Сделано в фирме TheLeon';
SetBounds(ScaleX(16),ScaleY(330),ScaleX(132),ScaleY(13));
end;
должен быть в процедуре InitializeWizard, а у вас он каким то образом оказался в функции NextButtonClick и
Код: Выделить весь код
Image1 := TBitmapImage.Create(WizardForm);
with Image1 do
begin
Parent := WizardForm.SelectDirPage;
SetBounds(ScaleX(0),ScaleY(110),ScaleX(417),ScaleY(140));
ExtractTemporaryFile('BMP.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\BMP.bmp'));
end;
и
Код: Выделить весь код
  WizardForm.SelectDirBitmapImage.Hide;
  WizardForm.DiskSpaceLabel.Hide;
  WizardForm.SelectDirLabel.SetBounds(ScaleX(0),ScaleY(9),ScaleX(417),ScaleY(14));
тоже должен быть в процедуре InitializeWizard

-------
Помог? От "Полезное сообщение" не откажусь!!!

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

Отправлено: 16:49, 06-04-2018 | #6


Аватара для TheLeon

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


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

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


Изображения
Тип файла: png Снимок.PNG
(150.8 Kb, 20 просмотров)

habib2302, обращаюсь ещё раз, всё сделал, но текст не передвинулся, опять накосячил где-то? (см.скрин 1)

P.S: за остальное же спасибо, слепой, что с меня взять...
Секция CODE
пусто

Последний раз редактировалось TheLeon, 07-04-2018 в 21:29.


Отправлено: 18:43, 06-04-2018 | #7


Аватара для habib2302

Ветеран


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

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


Цитата TheLeon:
всё сделал, но текст не передвинулся, опять накосячил где-то? »
по поводу текста вы у меня не спрашивали.
вот добавьте это в InitializeWizard
Код: Выделить весь код
WizardForm.DirBrowseButton.SetBounds(ScaleX(342),ScaleY(36),ScaleX(75),ScaleY(23));
WizardForm.DirEdit.SetBounds(ScaleX(0),ScaleY(37),ScaleX(332),ScaleY(21));
WizardForm.SelectDirBrowseLabel.SetBounds(ScaleX(0),ScaleY(0),ScaleX(417),ScaleY(27));

-------
Помог? От "Полезное сообщение" не откажусь!!!


Последний раз редактировалось habib2302, 06-04-2018 в 19:59.

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

Отправлено: 19:16, 06-04-2018 | #8


Аватара для TheLeon

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


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

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


Ребят, нужна помощь! Пытался-пытался, не соображаю, как добавить, чтобы при наведении показывалось превью, именно в мой код.

P.S: смотрел статью, опять же пытался - ничего не получилось.
Секция Code

Пусто

Последний раз редактировалось TheLeon, 07-04-2018 в 21:29.


Отправлено: 12:39, 07-04-2018 | #9


Аватара для habib2302

Ветеран


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

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


TheLeon, вот другой вариант. потому что скрипт из этой статьи в виде всплывающего уведомления
Код: Выделить весь код
[Setup]
AppName=Моя программа
AppVersion=1.5
AppPublisher=YURSHAT
AppPublisherURL=http://krinkels.org/
DefaultDirName={pf}\Моя программа

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

[CustomMessages]
RU.CompName1=Компонент 1
RU.CompName2=Компонент 2

[Files]
Source: "compiler:WizModernImage.bmp"; DestName: "CompDescImg1.bmp"; Flags: dontcopy
Source: "compiler:WizModernImage-IS.bmp"; DestName: "CompDescImg2.bmp"; Flags: dontcopy

[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
Name: comp1; Description: "{cm:CompName1}"; Types: full
Name: comp2; Description: "{cm:CompName2}"; Types: full

[Code]

type
    TComponentDesc = record
    Description: String;
    ImageName: String;
    Index: Integer;
end;

var
  CompDescs: array of TComponentDesc;
  CompDescPanel, CompDescImgPanel: TPanel;
  CompIndex, LastIndex: Integer;
  CompDescImg: TBitmapImage;

procedure ShowCompDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea);
var
  i: Integer;
begin
  if Index = LastIndex then Exit;
  CompIndex := -1;
  for i := 0 to GetArrayLength(CompDescs) -1 do
  begin
    if (CompDescs[i].Index = Index) then
    begin
      CompIndex := i;
      Break;
    end;
  end;
  if (CompIndex >= 0) and (Area = iaItem) then
  begin
    if not FileExists(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName) then
      ExtractTemporaryFile(CompDescs[CompIndex].ImageName);
    CompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName);
    CompDescImg.Show;
  end;
  LastIndex := Index;
end;

procedure CompListMouseLeave(Sender: TObject);
begin
  CompDescImg.Hide;
  LastIndex := -1;
end;

procedure AddCompDescription(AIndex: Integer; ADescription: String; AImageName: String);
var
  i: Integer;
begin
  i := GetArrayLength(CompDescs);
  SetArrayLength(CompDescs, i + 1);
  CompDescs[i].Description := ADescription;
  CompDescs[i].ImageName := AImageName;
  CompDescs[i].Index := AIndex - 1
end;

procedure InitializeWizard();
begin
  WizardForm.SelectComponentsLabel.Hide;
  WizardForm.TypesCombo.Hide;
  WizardForm.ComponentsList.SetBounds(ScaleX(0), ScaleY(0), ScaleX(184), ScaleY(205));
  WizardForm.ComponentsList.OnItemMouseMove:= @ShowCompDescription;
  WizardForm.ComponentsList.OnMouseLeave := @CompListMouseLeave;

  CompDescImgPanel := TPanel.Create(WizardForm);
  with CompDescImgPanel do
  begin
    Parent := WizardForm.SelectComponentsPage;
    SetBounds(ScaleX(192), ScaleY(0), ScaleX(225), ScaleY(205));
    BevelInner := bvLowered;
  end;

  CompDescImg := TBitmapImage.Create(WizardForm);
  with CompDescImg do
  begin
    Parent := CompDescImgPanel;
    SetBounds(ScaleX(5), ScaleY(5), CompDescImgPanel.Width - ScaleX(10), CompDescImgPanel.Height - ScaleY(10));
    Stretch := True;
    Hide;
  end;

  AddCompDescription(1, (''), 'CompDescImg1.bmp');
  AddCompDescription(2, (''), 'CompDescImg2.bmp');
end;

-------
Помог? От "Полезное сообщение" не откажусь!!!

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

Отправлено: 19:35, 07-04-2018 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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




 
Переход