Inno Setup (создание инсталяционных пакетов). Часть 1

Статус
В этой теме нельзя размещать новые ответы.

Kent

Новичок
Подскажите пожалусто как сделать чтобы слайд-шоу показывалось только на странице установки(использую модуль от Экспедитора)
 

UltraISO

Мимокрокодил
Парни, нужна помощь!!!

[Tasks]
Name: DopPO\PhysX; Description: Установить\ Обновить NVIDIA PhysX;

[Run]
Filename: "{src}\Redist\PhysX.exe"; WorkingDir: "{src}\Redist"; StatusMsg: Идет установка Nvidia PhysX...; Flags: skipifdoesntexist; Check: CheckError; Tasks: DopPO\PhysX;

Подскажите как сделать так чтобы устанавливалось не PhysX.exe а PhysX.msi ???
 

deaddima

Новичок
Ребята кто-небудь сможет мне помочь объединить два скрипта, а именно:
ISDone 0.6final и библиотеку isSlideShow v1.02 так чтобы были прогресбары
а то я обьединил а прогресбар отсутствовал
 
Последнее редактирование:

sergey3695

Ветеран
Модератор
Кто знает что это за ошибка

Компилятор Unicode/ Компилировал скрипт с ботвой
 

LexBell

Борода
Супер модератор
Кто знает что это за ошибка
В большинстве случаев, означает, что обращаешься к объекту, до его создания. Например, обращаешься к длл в папке темп, а ее там нет, на самом деле. Или пытаешься изменить положение прогрессбара, а он хоть и объявлен в глобальных переменных, но еще не создан.
 

sergey3695

Ветеран
Модератор
Или пытаешься изменить положение прогрессбара, а он хоть и объявлен в глобальных переменных, но еще не создан.
Это то :up:, но ладно мне этот код и не нужен как бы, просто было интересно что за ошибка. (чтобы знать если встретится в нужном коде 8-))
 

ShuToff

Новичок
Что-то в инсталяторах неактивна клавиша перехода в полноэкранный режим. Можно ли её как-то адаптировать под смену с обычного вида на компактный (например маленькое окно в уклу экрана с прогрэсс-баром)?
[MOD=Gnom]Если завтра не подскажут, то послезавтра напомни в личку, накидаю пример.[/MOD]
 
Последнее редактирование модератором:

gocha

Новичок
Как сделать Диалог выбора папки, которая включает в список только ХардДрайвы?
 

gocha

Новичок
Avangard, Было бы так не ссылались бы на WinAPI, раз твердишь, давал бы примеры.
 
Последнее редактирование:

Avangard

Участник
gocha
Код:
[Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirname={pf}\MyApp
 
[_code]
procedure initializeWizard();
begin
  WizardForm.BorderIcons:= [biSystemMenu];
end;
Так же существуют такие варианты BorderIcons:
biSystemMenu, biMinimize, biMaximize, biHelp.

P.S. Проверялось на расширенной, китайской версии Inno Setup.
 
Последнее редактирование:

Katarn

Новичок
Подскажите пожалуйста, где и что нужно прописать чтобы "Список жёстких дисков", тоже был чёрного цвета а не белого как на скрине.
Скрипт прилагается.

[Setup]
AppName=DisksInfoBox
AppVerName=DisksInfoBox
DefaultDirName={pf}\DisksInfoBox
DefaultGroupName=DisksInfoBox

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

[CustomMessages]
rus.DiskSpace=Список жёстких дисков и свободного места

[Files]
Source: compiler:Dll Pack\get_hw_caps.dll; Flags: dontcopy

Код:
const
Color = clblack;

var
ListBox: TListBox;
DiskListLabel,
PercentLabel: TNewStaticText;

function GetHardDriveFreeSpace(hdd: integer): Integer; external 'hwc_GetHardDriveFreeSpace@files:get_hw_caps.dll stdcall';
function GetHardDriveName(hdd: integer): PChar; external 'hwc_GetHardDriveName@files:get_hw_caps.dll stdcall';
function GetHardDriveTotalSpace(hdd: integer): Integer; external 'hwc_GetHardDriveTotalSpace@files:get_hw_caps.dll stdcall';
function GetHardDrivesCount(): Integer; external 'hwc_GetHardDrivesCount@files:get_hw_caps.dll stdcall';

function NumToStr(Float: Extended): string;
begin
Result:=Format('%.2n', [Float]);
StringChange(Result, ',', '.');
while ((Result[Length(Result)]='0') or (Result[Length(Result)]='.')) and (Pos('.',Result)>0) do SetLength(Result,Length(Result)-1);
end;

function TBorGBorMB(Float: Extended): string;
// функция определения ТБ, ГБ или МБ
begin
if Float<1024 then Result:=NumToStr(Float)+' МБ'
else if (Float/1024)<1024 then Result:=NumToStr(Float/1024)+' ГБ'
else if (Float/(1024*1024))<1024 then Result:=NumToStr(Float/(1024*1024))+' ТБ'
end;

procedure CreatePageComponents;
var
i, count: Integer;
begin

DiskListLabel := TNewStaticText.Create(WizardForm);
with DiskListLabel do
begin
Caption := ExpandConstant('{cm:DiskSpace}');
Parent := WizardForm.SelectDirPage;
AutoSize := False;
Font.Size := 9;
Font.Name := 'Courier New';
Font.Color := clLime;
SetBounds(ScaleX(2), ScaleY(105), ScaleX(300), ScaleY(15));
end;

ListBox := TListBox.Create(WizardForm);
with ListBox do
begin
Parent := WizardForm.SelectDirPage;
Font.Name := 'Fixedsys';
Font.Size := 10;
Font.Color := clLime;
SetBounds(ScaleX(2), ScaleY(125), ScaleX(185), ScaleY(75));
end;

count:= GetHardDrivesCount();
for i:= 0 to count - 1 do
ListBox.Items.Add(GetHardDriveName(i)+ ' ' + IntToStr((GetHardDriveFreeSpace(i)*100) div GetHardDriveTotalSpace(i)) + '% '+ TBorGBorMB(GetHardDriveFreeSpace(i)));

with WizardForm.DiskSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Font.Size := 9;
Font.Name := 'Courier New';
Font.Color := clblack;  ------------------------------------------- [B]Вот тут вроде правильно написал, а цвет всё равно белый !!![/B]
SetBounds(ScaleX(200), ScaleY(357), ScaleX(445), ScaleY(15));
end;
end;

procedure HideComponents;
begin
WizardForm.GroupBrowseButton.Hide;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
HideComponents;
end;

procedure InitializeWizard2();
begin
CreatePageComponents;
end;

procedure initializeWizard3();
begin
  WizardForm.BorderIcons:= [biHelp];
end;

procedure InitializeWizard4();
begin
WizardForm.Font.Color:=clLime;
WizardForm.Color:=Color;
WizardForm.WelcomePage.Color:=Color;
WizardForm.InnerPage.Color:=Color;
WizardForm.FinishedPage.Color:=Color;
WizardForm.LicensePage.Color:=Color;
WizardForm.PasswordPage.Color:=Color;
WizardForm.InfoBeforePage.Color:=Color;
WizardForm.UserInfoPage.Color:=Color;
WizardForm.SelectDirPage.Color:=Color;
WizardForm.SelectComponentsPage.Color:=Color;
WizardForm.SelectProgramGroupPage.Color:=Color;
WizardForm.SelectTasksPage.Color:=Color;
WizardForm.ReadyPage.Color:=Color;
WizardForm.PreparingPage.Color:=Color;
WizardForm.InstallingPage.Color:=clblack;
WizardForm.InfoAfterPage.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.DiskSpaceLabel.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.GroupEdit.Color:=Color;
WizardForm.PasswordLabel.Color:=Color;
WizardForm.PasswordEdit.Color:=Color;
WizardForm.PasswordEditLabel.Color:=Color;
WizardForm.ReadyMemo.Color:=Color;
WizardForm.TypesCombo.Color:=Color;
WizardForm.WelcomeLabel1.Color:=Color;
WizardForm.WelcomeLabel1.Font.Color:=clLime;
WizardForm.InfoBeforeClickLabel.Color:=Color;
WizardForm.MainPanel.Color:=Color;
WizardForm.PageNameLabel.Color:=Color;
WizardForm.PageDescriptionLabel.Color:=Color;
WizardForm.ReadyLabel.Color:=Color;
WizardForm.FinishedLabel.Color:=Color;
WizardForm.YesRadio.Color:=Color;
WizardForm.NoRadio.Color:=Color;
WizardForm.WelcomeLabel2.Color:=Color;
WizardForm.LicenseLabel1.Color:=Color;
WizardForm.InfoAfterClickLabel.Color:=Color;
WizardForm.ComponentsList.Color:=Color;
WizardForm.ComponentsDiskSpaceLabel.Color:=Color;
WizardForm.BeveledLabel.Color:=Color;
WizardForm.StatusLabel.Color:=Color;
WizardForm.FilenameLabel.Color:=Color;
WizardForm.SelectDirLabel.Color:=Color;
WizardForm.SelectStartMenuFolderLabel.Color:=Color;
WizardForm.SelectComponentsLabel.Color:=Color;
WizardForm.SelectTasksLabel.Color:=Color;
WizardForm.LicenseAcceptedRadio.Color:=Color;
WizardForm.LicenseNotAcceptedRadio.Color:=Color;
WizardForm.UserInfoNameLabel.Color:=Color;
WizardForm.UserInfoNameEdit.Color:=Color;
WizardForm.UserInfoOrgLabel.Color:=Color;
WizardForm.UserInfoOrgEdit.Color:=Color;
WizardForm.PreparingLabel.Color:=Color;
WizardForm.FinishedHeadingLabel.Color:=Color;
WizardForm.FinishedHeadingLabel.Font.Color:=clLime;
WizardForm.UserInfoSerialLabel.Color:=Color;
WizardForm.UserInfoSerialEdit.Color:=Color;
WizardForm.TasksList.Color:=Color;
WizardForm.RunList.Color:=Color;
WizardForm.SelectDirBrowseLabel.Color:=Color;
WizardForm.SelectStartMenuFolderBrowseLabel.Color:=Color;
WizardForm.PageNameLabel.Font.Color:=clLime;
WizardForm.Bevel.visible:=False;
WizardForm.BeveledLabel.visible:=False;
WizardForm.Bevel1.visible:=False;
end;

procedure InitializeWizard();
begin
  InitializeWizard2();
  InitializeWizard3();
  InitializeWizard4();
end;[/SPOILER]
 
Последнее редактирование:

LexBell

Борода
Супер модератор
[SOURCE="inno"]ListBox := TListBox.Create(WizardForm);
with ListBox do
begin
Parent := WizardForm.SelectDirPage;
Font.Name := 'Fixedsys';
Font.Size := 10;
Font.Color := clLime;
Color:=clBlack;
SetBounds(ScaleX(2), ScaleY(125), ScaleX(185), ScaleY(75));
end;[/SOURCE]
Просто задать нужный цвет листбоксу, в котором создаешь список дисков.
 

ShuToff

Новичок
Есть ещё пару вопросов:
1) как организовать отображения прогресса на ярлыке в панели задач (как здесь)
2) как организовать запрос на выбор из двух вариантов до загрузки основного инсталятора (по принципу выбора языка), и чтобы результат выбора влиял на значение переменной.
 

LexBell

Борода
Супер модератор
2) как организовать запрос на выбор из двух вариантов
Ммм... както так, наверное?
[SOURCE="inno"][Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

Код:
var Flag:Boolean;

function InitializeSetup(): Boolean;
begin
  Flag:=MsgBox('Ответьте - да или нет?',mbInformation,MB_YESNO)=IDYES;
  Result:=True;
end;

procedure InitializeWizard();
begin
  case Flag of
    True:  WizardForm.WelcomeLabel2.Caption:='Вы ответили : "Да"';
    False: WizardForm.WelcomeLabel2.Caption:='Вы ответили : "Нет"';
  end;
end;[/SOURCE][/SPOILER] По первому вопросу - [b]David.D.Rocco[/b] Скорей всего подскажет - он работал с таскбаром семерки.
 
Последнее редактирование:

deaddima

Новичок
Кто знает как убрать надписи в инсталяторе типо "Вас приветствует мастер установки...."
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху