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

Статус
В этой теме нельзя размещать новые ответы.
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]
 
Последнее редактирование:
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, но по крайней мере это работает. :)
 
Leserg, Я думал вы скрыли все страницы инсталлятора, тот пример работает только тогда когда все страницы будут скрыты... А то что вы написали, это правильно, только при новой странице ставьте видео на паузу, и когда будет опять та страница, то есть страница приветствия воспроизводите видео, как то так...
 
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;
 
Угу, а диалоговые окна ты так не сделаешь. Нужно по другому принципу делать, как это сделано в библиотеке. По любому будет использоваться функция SetWindowTheme, она и используется, но для всех окон.
 
Shegorat,
к такому виду возможно привести?:
classic2.png
 
ISMD5 - библиотека для вычисления и сравнения хеш-суммы MD5 файлов с выводом прогресса. За примеры спасибо [user]nik1967[/user]

Скачать

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

Вложения

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

Вложения

Здраствуйте уважаемые пользователи данного форума! У меня вопрос по поводу модуля botva во многих скриптах. При попытке скомпилировать проект выходит ошибка
. Если кто-то знает подскажите пожалуйста решение проблемы
 
Здраствуйте уважаемые пользователи данного форума! У меня вопрос по поводу модуля botva во многих скриптах. При попытке скомпилировать проект выходит ошибка
Требуется расширенная версия Inno Setup от ResTools
 
Не сильно часто, но бывает нужно определить SID текущего пользователя. Находил где-то уже работы на эту тему, но столкнулся с тем, что на восьмерке функция хоть и работает, но инсталл завершается с ошибкой. Причин так и не понял, но вот, накидал свою поделку, свободную от этого неприятного момента.
Скачать.
 
Все, спасибо, разобрался уже :)

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

Вложения

Последнее редактирование:
Xabib2302, спасибо, но мне нужна была рамка аэро как на скине аимпа, вроде разобрался =)
 
Xabib2302, спасибо, но мне нужна была рамка аэро как на скине аимпа, вроде разобрался =)

если тебе нужна только рамка аеро, то скрипт есть в комплекте с inno setup ultra.
 

Вложения

  • Like
Реакции: Adil
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху