Дополнительные библиотеки для Inno Setup

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

GVS276

Старожил
Проверенный
Leserg, В этой версии ISVideo.dll, процедура/функция скрытия и показа видео нет, просто не подумал про это! Но если вы хотите скрыть видео, то создайте TPanel и задайте Handle панели в DXVideoInit(Панель.Handle,...), и потом в NextButtonClick
сделайте скрытие панели, то есть панель.hide;, а показать панель.show;
P.S.: DXVideoClose(WizardForm.Handle); - Закрывает окно без ошибок
P.S.S: xvidcore.dll и xvidvfw.dll - Они нужны для ISVideoInit, для DXVideoInit - они не нужны
Мини пример:
[SOURCE="iss"]Var
Panel1: TPanel;
Pnl: Integer;

procedure InitializeWizard;
begin
ExtractTemporaryFile('Video.avi');

Panel1:= TPanel.Create(WizardForm);
Panel1.SetBounds(0,0,497,313);
Panel1.Parent:= WizardForm;
Panel1.Show;

Pnl:= DXVideoInit(Panel1.Handle, ExpandConstant('{tmp}\Video.avi'), ScaleX(0), ScaleY(0), ScaleX(497), ScaleY(313));
DXVideoVolume(Pnl, 100);
DXVideoSpeed(Pnl, 0, True);
DXVideoSetPos(Pnl, 0);
end;

function NextButtonClick(CurPage: Integer): Boolean;
begin
Result:=True;
if CurPage = wpWelcome then
begin
#ifdef DXVideo
DXVideoPause(Pnl);
Panel1.Hide;
#endif
Result:=True;
end;
end;
[/SOURCE]
 
Последнее редактирование:

Leserg

Участник
AVMan, спасибо за развернутый ответ. Я пока не увидел ваш ответ поступил, следующим образом: в файле DXVideo.iss из вашего примера, добавил хендл странички приветствия "WelcomePage", т.е.
было так
DXVideoInit(WizardForm.Handle, ExpandConstant('{tmp}\Video.avi'), ScaleX(0), ScaleY(0), ScaleX(164), ScaleY(313));

я сделал так
DXVideoInit(WizardForm.WelcomePage.Handle, ExpandConstant('{tmp}\Video.avi'), ScaleX(0), ScaleY(0), ScaleX(164), ScaleY(313));

а саму функцию NextButtonClick убрал из кода. Мне было нужно отображать видео только на первой странице Мастера установки. Теперь при нажатии кнопки "Далее" окошко видео пропадает.

Я не знаю правильно это или нет, т.к. только начинаю осваивать InnoSetup, но по крайней мере это работает. :)
 

GVS276

Старожил
Проверенный
Leserg, Я думал вы скрыли все страницы инсталлятора, тот пример работает только тогда когда все страницы будут скрыты... А то что вы написали, это правильно, только при новой странице ставьте видео на паузу, и когда будет опять та страница, то есть страница приветствия воспроизводите видео, как то так...
 

sergey3695

Ветеран
Модератор
Shegorat,
Код:
[Setup] 
AppName=My Program 
AppVersion=1.5 
;AppVerName=My Program 1.5 
AppPublisher=My Company, Inc. 
DefaultDirName={pf}\My Program 
DefaultGroupName=My Program 
 
[Languages] 
Name: russian; MessagesFile: compiler:Languages\Russian.isl 
 
[Files] 
Source: {win}\help\*; DestDir: {app}\Files; Flags: external recursesubdirs createallsubdirs 
 
[Code_]
function SetWindowTheme(hwnd: HWND; pszSubAppName: PAnsiChar; pszSubIdList: PAnsiChar): Longint; 
 external 'SetWindowTheme@UxTheme.dll stdcall delayload'; 
 
procedure InitializeWizard(); 
begin 
  try 
    SetWindowTheme(WizardForm.Handle, ' ', ' ');     
    SetWindowTheme(WizardForm.NextButton.Handle, ' ', ' ');     
    SetWindowTheme(WizardForm.BackButton.Handle, ' ', ' ');     
    SetWindowTheme(WizardForm.CancelButton.Handle, ' ', ' ');     
    SetWindowTheme(WizardForm.DirBrowseButton.Handle, ' ', ' ');     
    SetWindowTheme(WizardForm.GroupBrowseButton.Handle, ' ', ' ');     
    SetWindowTheme(WizardForm.Progressgauge.Handle, ' ', ' ');     
  except 
  end; 
end; 

procedure CurPageChanged(CurPageID: Integer); 
begin 
  if CurPageID=wpSelectDir then begin 
    Wizardform.ProgressGauge.Perform($0409, 0, clMaroon); //цвет бара 
    Wizardform.ProgressGauge.Perform($2000+1, 0, clLime); //цвет фона бара 
  end; 
end;
 

Shegorat

Lord of Madness
Администратор
Угу, а диалоговые окна ты так не сделаешь. Нужно по другому принципу делать, как это сделано в библиотеке. По любому будет использоваться функция SetWindowTheme, она и используется, но для всех окон.
 

Shegorat

Lord of Madness
Администратор
ISMD5 - библиотека для вычисления и сравнения хеш-суммы MD5 файлов с выводом прогресса. За примеры спасибо [user]nik1967[/user]

Скачать

Добавлено:
NOTE: Файл перезалит 23.09.2012 - исправлен один небольшой косячок.
 

GVS276

Старожил
Проверенный
ISArc.dll
Эх не сдержался и попробовал перевести код с Ex7z в dll для Inno Setup...
Вообщем вот:[HR][/HR]Описание:
ISArcRecords - процедура создающая Records.ini куда записывается оригинальный размер папки
ISArcProcess - Функция запускающая консоль с нужными параметрами
ISArcCancel - Процедура прерывания процесса
ISArcSuspend - Процедура остановки процесса
ISArcResume - Процедура возобновление процесса
ISArcPos - Функция для отображения данного размера папки
ISArcMax - Функция для отображения оригинального размера папки
ISArcDirExists - Функция поиска нужной папки
ISArcDeleteDir - Процедура для удаления папки[HR][/HR]P.S.:
Выкладываю ради теста и не только!
Так же через 1-2 дня обновлю весь код поправлю ошибки и добавлю новые возможности =)
Так же во вложении вы увидете архивчик ISArc_(SDK).rar - это исходник самой dll (<- может пригодится кому нить)
Так же эту распаковку 7z можно изменить на распаковку FreeArc или под другие консольные распаковки
Так же попробую переписать весь код на win API
+ маленький подарок: модуль (ISArc_(Module).rar) распаковки 7Zip на инно (Используется ISProcess.dll для запуска консоли)
 

Вложения

Последнее редактирование:

GVS276

Старожил
Проверенный
ISArc.dll v1.1
Как и обещал, весь код был переписан на WinAPI и теперь размер библиотеки 24 064 байт
Напомню пример использования, можно переделать под любую распаковку...
 

Вложения

Olim98

Новичок
Здраствуйте уважаемые пользователи данного форума! У меня вопрос по поводу модуля botva во многих скриптах. При попытке скомпилировать проект выходит ошибка[HR][/HR] . Если кто-то знает подскажите пожалуйста решение проблемы
 

Shegorat

Lord of Madness
Администратор
Здраствуйте уважаемые пользователи данного форума! У меня вопрос по поводу модуля botva во многих скриптах. При попытке скомпилировать проект выходит ошибка
Требуется расширенная версия Inno Setup от ResTools
 

LexBell

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

Xabib2302

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

Вложения

Последнее редактирование:

Adil

Старожил
Xabib2302, спасибо, но мне нужна была рамка аэро как на скине аимпа, вроде разобрался =)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху