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

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

Carlos

Участник
Модератор
Как при распаковке через if not ISExec осуществить отображение имён распаковывающихся файлов в процессе установки?

С if not ISArcExtract работает, с if not ISExec ничего не отображается.
 

Carlos

Участник
Модератор
urban, Всё, что ему принадлежит это:
LabelCurrFileName.Caption:=ExpandConstant('{cm:Extracted} ')+MinimizePathName(CurrentFile, LabelCurrFileName.Font, LabelCurrFileName.Width-ScaleX(205));

WizardForm.StatusLabel.Caption:=ExpandConstant('{cm:Extracted}');

и всё. это из исдона.
Ну и в Messsages
 

Carlos

Участник
Модератор
Edison007,
OutputStr – строка, которая будет отображаться в процессе работы приложения на форме инсталла в поле "Извлекается файл: ";

Это?
 

Snoopak96

Старожил
Carlos,
Да, параметр этот, но через ISExec список файлов не отобразить
 

HoLmEs

Новичок
есть файл data с разширением arc я к названию приписываю .bin получается data.bin но расширение не меняется как быть?
 

ProZorg

Новичок
HoLmEs в параметрах папок включить отображение расширения файлов
Панель управления - параметры папок, вкладка Вид, убрать галоску со строки Скрывать расширения для зарегистрированных типов файлов
 

sjwrec

Новичок
Здравствуйте, есть ли скрипт получения версии DirectX видеокарты, а не системы.

Мне для репака Кразис 3 надо. Чтобы если не DX11 то не ставилась игра. Заранее спасибо!
 

urban

Старожил
как сделать чтобы инсталлятор всё подхватит и изменил компонент лист,в зависимости от скачаных файлов?
 

Shegorat

Lord of Madness
Администратор
Здравствуйте, есть ли скрипт получения версии DirectX видеокарты, а не системы.
Получить версию установленного DirectX можно примерно так
Код:
[Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirName={pf}\MyApp

[ code]
type
  TDirectXVersion = record
    Major: Byte;
    Minor: Byte;
  end;

function GetDirectXVerion(var DXVer: TDirectXVersion): Boolean;
var
  D: String;
begin
  Result:= False;
  DXVer.Major:= 0;
  DXVer.Minor:= 0;
  if (not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\DirectX', 'Version', D))or(D = '') then
    Exit;
  Delete(D, 1, Pos('.', D));
  DXVer.Major:= StrToInt(copy(D, 1, Pos('.', D)-1));
  Delete(D, 1, Pos('.', D));
  DXVer.Minor:= StrToInt(copy(D, 1, Pos('.', D)-1));
  Result:= True;
end;

procedure InitializeWizard();
var
  DX: TDirectXVersion;
begin
  if GetDirectXVerion(DX) then
    MsgBox('Версия DirectX: '+IntToStr(DX.Major)+'.'+IntToStr(DX.Minor), mbConfirmation, MB_OK)
  else
    MsgBox('Не удалось получить версию DirectX', mbError, MB_OK);
end;
Получить версию DirectX, которая поддерживается видеокартой, можно только через API DirectX, и на инно это труднореализуемо, если вообще возможно. Нужно делать библиотеку.
 

Mailchik

Старожил
Проверенный
как сделать чтобы инсталлятор всё подхватит и изменил компонент лист,в зависимости от скачаных файлов?
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

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

[Components]
Name: Voice; Description: Voice language:; Types: full; Flags: fixed; Check: FileExists(ExpandConstant('{src}\rus.bin')) or FileExists(ExpandConstant('{src}\eng.bin'));
Name: Voice\rus; Description: Russian; Flags: exclusive; Check: FileExists(ExpandConstant('{src}\rus.bin'));
Name: Voice\eng; Description: English; Flags: exclusive; Check: FileExists(ExpandConstant('{src}\eng.bin'));
 

sjwrec

Новичок
Получить версию DirectX, которая поддерживается видеокартой, можно только через API DirectX, и на инно это труднореализуемо, если вообще возможно. Нужно делать библиотеку.
А может быть можно как нибудь из системных библиотек или DirectX библиотек получить API DX ?

Спасибо Вам за код.
 

LexBell

Борода
Супер модератор
sjwrec, Можно. Написано-же:
на инно это труднореализуемо, если вообще возможно.
Могу сказать возможно. пара километров кода одного только импорта объектов директа в инно. И заводится это добро на инно будет минут 20.
 

sjwrec

Новичок
Gnom, А зачем так много, мне же ведь только нужно знать какой аппаратной поддержкой (версией DX) обладает процессор видеокарты.

AIDA64 у меня загружается меньше минуты и в меню Графический процессор
безошибочно показывет DX видеокарты.

"Аппаратная поддержка DirectX DirectX v10"

Можно ли взять оттуда код проверки и переделать под Inno?
 
Последнее редактирование:

LexBell

Борода
Супер модератор
sjwrec,Аида и инно - это совершенно разные вещи. почитай про разницу между компилятором и интерпретатором. инно - интерпретатор.

А зачем так много
А ты попробуй любой сорец на директе перенести в инно. например такой простейший быдлокод:
[SOURCE="iss"]var
MyGraphBuilder : IGraphBuilder;
MyMediaControl : IMediaControl;
VideoWindow : IVideoWindow;
pWidth: Longint;
pHeight: Longint;

procedure Button1Click(Sender: TObject);
begin
CoCreateInstance(CLSID_FilterGraph,nil,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,MyGraphBuilder);
MyGraphBuilder.RenderFile("video.avi",nil);
MyGraphBuilder.QueryInterface(IID_IMediaControl,MyMediaControl);
MyGraphBuilder.QueryInterface(IID_IVideoWindow,VideoWindow);
VideoWindow.Put_Owner(Self.Panel1.Handle);
VideoWindow.Put_WindowStyle(WS_CHILD OR WS_CLIPSIBLINGS);
VideoWindow.SetWindowPosition(0,0,Panel1.Width,Panel1.Height);
MyMediaControl.Run;
end;[/SOURCE]
 
Последнее редактирование:

Carlos

Участник
Модератор
При удалении игры через панель удаления программ пишется размер установленной игры\программы. (репаки некоторых рг, программы и т.д.)
Когда я удаляю свой инсталл, там отображается размер только сетап файла.
Что и где нужно прописать, чтобы отображался размер полностью удаляемой папки?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху