;#define Video
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputBaseFilename=2
[Files]
Source: IsPicture_for_all.dll; Flags: dontcopy
Source: Fon.bmp; Flags: dontcopy
#ifdef Video
Source: XVID\fon.avi; Flags: dontcopy
#endif
#ifdef XvidModul
; XVID Codec
Source: "xvidcore.dll"; DestDir: "{tmp}"; Flags: dontcopy
Source: "xvidvfw.dll"; DestDir: "{tmp}"; Flags: dontcopy
#endif
[Code]
//-----------------------------------------
procedure Initialize(AhWnd,BhWnd:hWnd);external 'Initialize@{tmp}\IsPicture_for_all.dll stdcall delayload';
// Здесь указываем хендлы окон, на данный момент, лучше пока указывать
// WizardForm.Handle - первым и MainForm.Handle вторым.
//-----------------------------------------
procedure XvidVideo(fn:String;Seth:string);external 'XvidVideo@{tmp}\IsPicture_for_all.dll stdcall delayload';
// Эта процедура загружает фоновое avi-видео.
// Seth - задаем координаты через пробел в одинарных кавычках
// пример: XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132');
//-----------------------------------------
procedure Deinitialize;external 'Deinitialize@{tmp}\IsPicture_for_all.dll stdcall delayload';
// отменяет свзывание форм между собой, выгружает видео.
//-----------------------------------------
function NewFont(Height:Integer;thickness,italic,underline,strikeout:DWORD;name:String):hWnd;external 'NewFont@{tmp}\IsPicture_for_all.dll stdcall delayload';
// Создает шрифты для замены стандартных. Необходима для борьбя с артефактами сглаживания.
// Height, // высота шрифта
// thickness, // насыщенность шрифта
// italic, // курсив
// underline, // Подчеркнутый
// strikeout, // Зачеркнутый
// name // имя шрифта
//-----------------------------------------
procedure SplashWnd(FileName:PAnsiChar;Time,width,height:Integer);external 'SplashWnd@{tmp}\IsPicture_for_all.dll stdcall delayload';
// Создает Splash-заставку
// Прозрачность, пока, не поддерживается
// FileName, // имя файла
// Time, // скорость появления в миллисекундах
// width, // ширина
// height, // высота
procedure EndSplash(Time1,Time2:Integer);external 'EndSplash@{tmp}\IsPicture_for_all.dll stdcall delayload';
// Закрываем Splash-заставку
// Time1, // выжидание до закрытия в миллисекундах
// Time, // скорость закрытия в миллисекундах
//-----------------------------------------
//-----------------------------------------
function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';
const
TfonColor = $000008; // Цвет фона $000008 - не изменять!
TfontColor = $ffffff; // Цвет тeкста
#ifdef Video
#include "XVID\xvid.iss"
#endif
#include "WizardFormResise.iss"
Var Font1,Font2:hWnd;
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('IsPicture_for_all.dll');
ExtractTemporaryFile('fon.bmp');
// ExtractTemporaryFile('xvidcore.dll');
// ExtractTemporaryFile('xvidvfw.dll');
SplashWnd(ExpandConstant('{tmp}\fon.bmp'),1500,ScaleX(600),ScaleY(420));
#ifdef Video
XvidInstall;
ExtractTemporaryFile('fon.avi');
#endif
EndSplash(1500,1000);
Result:=True;
end;
procedure InitializeWizard();
begin
#ifdef XvidModul
XvidInstall; // ????????? ??????????? Xvid
#endif
Font1:= NewFont(16,600,0,0,0,'Comic Sans MS');
Font2:= NewFont(24,900,0,0,0,'Tahoma');
#ifdef Video
if CanUseXvid then begin
WizardForm.AutoScroll := False;
WizardForm.ClientWidth:= ScaleX(600);
WizardForm.ClientHeight:=ScaleY(420);
WizardForm.Center;
end
WizardFormResise;
#endif
WizardForm.WizardSmallBitmapImage.Hide;
WizardForm.WizardBitmapImage2.Hide;
WizardForm.DirEdit.AutoSelect:=False;
//-----------------------------------------
//-----------------------------------------
//---------------// не изменять!\\---------------\\
// задаем цвет всем элементам,которые нам нужны.
WizardForm.WelcomePage.Color:=TfonColor;// не изменять!
WizardForm.FinishedPage.Color:=TfonColor;
WizardForm.InnerPage.Color:=TfonColor;
WizardForm.DirEdit.Color:=TfonColor;
WizardForm.ReadyMemo.Color:=TfonColor;
WizardForm.MainPanel.Color:=TfonColor;
//---------------// не изменять!\\---------------\\
//-----------------------------------------
//-----------------------------------------
//---------------//Применяем шрифт\\---------------\\
WizardForm.Font.Handle:=Font1;
WizardForm.WelcomeLabel1.Font.Handle := Font2;
WizardForm.FinishedHeadingLabel.Font.Handle := Font2;
WizardForm.PageNameLabel.Font.Handle := Font1;
WizardForm.Font.Color:=TfontColor;
//---------------//Применяем шрифт\\---------------\\
//-----------------------------------------
//-----------------------------------------
// Приделываем прозрачность к SelectDirBitmapImage
// иначе, придется любоваться на красивый серый
// квадратик вокруг изображения папки :)
WizardForm.SelectDirBitmapImage.BackColor := clNone;
WizardForm.SelectDirBitmapImage.ReplaceColor := clBtnFace;
//-----------------------------------------
// скрываем изображение с финишной страницы
WizardForm.WizardBitmapImage.Parent := MainForm;
WizardForm.WizardBitmapImage.SetBounds(0, 0, WizardForm.ClientWidth, WizardForm.ClientHeight);
//-----------------------------------------
//-----------------------------------------
// Запускаем в работу все, что приготовили:
// указываем формы, с которыми будет работать длл-ка,
//-----------------------------------------
Initialize(WizardForm.Handle,MainForm.Handle);
//-----------------------------------------
// мультимедийные возможности - Фоновое видео
//-----------------------------------------
#ifdef Video
if CanUseXvid then
XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132');
#endif
//-----------------------------------------
end;
procedure DeinitializeSetup();
begin
//-----------------------------------------
// Не забываем про Deinitialize
// если не хотим разнообразных ошибок при выходе.
//-----------------------------------------
Deinitialize;
//-----------------------------------------
#ifdef Video
XvidUnInstall;
#endif
end;
ИМХО: Используйте кодек для видео WMV\WMV2, для аудио WMA\WMA2. Да и звуковая дорожка должна быть...wererat01 написал(а):есть ли пример работы с фоновым видео ? код из примера просто не работает фоновое видео, даже с кодом из readme.txt
спасибо, посмотрел.ИМХО: Используйте кодек для видео WMV\WMV2, для аудио WMA\WMA2. Да и звуковая дорожка должна быть...
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif
#ifndef IS_ENHANCED
#error Enhanced edition of Inno Setup (restools) is required to compile this script
#endif
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Files]
Source: IsPicture2.dll; Flags : dontcopy;
Source: fon.avi; Flags: dontcopy
Source: fon.bmp; Flags: dontcopy
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[code]
//----------------------------------------------------------------------------------\\
const // жирность шрифта
FW_DONTCARE = 0;
FW_THIN = 100;
FW_ULTRALIGHT = 200;
FW_LIGHT = 300;
FW_NORMAL = 400;
FW_MEDIUM = 500;
FW_DEMIBOLD = 600;
FW_BOLD = 700;
FW_ULTRABOLD = 800;
FW_BLACK = 900;
procedure IsPicInit(Handle : HWND);
external 'IsPicInit@files:IsPicture2.dll stdcall delayload';
// начало работы
procedure IsPicAddImg(fName : AnsiString);
external 'IsPicAddImg@files:IsPicture2.dll stdcall delayload';
// изображение на заднем фоне
procedure IsPicAddVideo(fName : AnsiString; l, t, w, h : Integer; test : Boolean);
external 'IsPicAddVideo@files:IsPicture2.dll stdcall delayload';
// видео на заднем фоне
// fName - имя файла
// l, t, w, h - положение и размер видео
// test показ сообщений об ошибках: True - с сообщениями, false - без сообщений
function IsPicReFont(OldFont: HWND; height, Weight : Integer; Italic : Boolean) : HWND;
external 'IsPicReFont@files:IsPicture2.dll stdcall delayload';
// подмена шрифта для борьбы с артефактами сглаживания
// height - Font.Height
// Weight - жирность
// Italic - наклонность
procedure IsPicStopVideo;
external 'IsPicStopVideo@files:IsPicture2.dll stdcall delayload';
// остановка воспроизведения видео - после этой команды
// видео будет полностью выгружено
function IsPicChecVideo : Boolean;
external 'IsPicChecVideo@files:IsPicture2.dll stdcall delayload';
// проверка успешности загрузки видео
function IsPicChecSound : Boolean;
external 'IsPicChecSound@files:IsPicture2.dll stdcall delayload';
// проверка успешности загрузки звука
procedure IsPicPauseVideo(play : Boolean);
external 'IsPicPauseVideo@files:IsPicture2.dll stdcall delayload';
// пауза видео
// play -
// если значение True, то продолжаем воспроизводить
// если значение False, то ставим на паузу
procedure IsPicSetVolume(volume : Integer);
external 'IsPicSetVolume@files:IsPicture2.dll stdcall delayload';
// громкость видео от -10000 до 0.
// -10000 - минимальное значение
// 0 - максимальное значение
procedure IsPicDeInit;
external 'IsPicDeInit@files:IsPicture2.dll stdcall delayload';
// не забываем вызвать в DeinitializeSetup
//----------------------------------------------------------------------------------\\
procedure RunStop(Sender: TObject);
begin
IsPicPauseVideo(TNewCheckBox(Sender).Checked);
end;
procedure SetVolume(Sender: TObject);
begin
IsPicSetVolume(TTrackBar(Sender).Position);
end;
/////////////////////////////////////////////////////////////////////////
procedure InitializeWizard();
begin
wizardform.WizardSmallBitmapImage.hide;
wizardform.PageNameLabel.hide;
ExtractTemporaryFile('fon.bmp');
ExtractTemporaryFile('fon.avi');
wizardform.Bevel.Hide;
wizardform.Bevel1.Hide;
with WizardForm do
begin
WizardBitmapImage.Free;
WizardBitmapImage2.Free;
//----------------------------------------------------------------------------------\\
// подменяем шрифты
Font.Handle := IsPicReFont(Font.Handle, Font.Height, FW_DEMIBOLD, False);
WelcomeLabel1.Font.Handle := IsPicReFont(WelcomeLabel1.Font.Handle, WelcomeLabel1.Font.Height, 100, False);
PageNameLabel.Font.Handle := IsPicReFont(PageNameLabel.Font.Handle, PageNameLabel.Font.Height, 100, False);
FinishedHeadingLabel.Font.Handle := IsPicReFont(FinishedHeadingLabel.Font.Handle, FinishedHeadingLabel.Font.Height, 100, False);
//----------------------------------------------------------------------------------\\
with ComponentsList do
begin
//BorderStyle := bsNone;
TreeViewStyle := True;
Width := ScaleX(500);
Left := ScaleX(50);
Top := ScaleY(150);
Height := ScaleY(185);
Font.Name:='Trebuchet MS';
Font.Size:= 10;
Font.Color:=$FFFFFF;
Color := $000008;
end;
ComponentsList.Font.Handle := IsPicReFont(ComponentsList.Font.Handle, ComponentsList.Font.Height, 0, False);
//----------------------------------------------------------------------------------\\
// цвет прозрачности - $000008. Указываем его для элементов,которые должны быть прозрачными
Color := $000008;
WelcomePage.Color := $000008;
InnerPage.Color := $000008;
FinishedPage.Color := $000008;
MainPanel.Color := $000008;
DirEdit.Color := $000008;
ReadyMemo.Color := $000008;
//----------------------------------------------------------------------------------\\
Font.Color := clYellow;
// запускам
end;
IsPicInit(WizardForm.Handle);
//----------------------------------------------------------------------------------\\
// добавляем изображение на задний фон
IsPicAddImg(ExpandConstant('{tmp}\fon.bmp'));
// добавляем видео на задний фон
IsPicAddVideo(ExpandConstant('{tmp}\fon.avi'), 0, 0, 360, 200, False); // При окончательной компиляции меняем True на False
//----------------------------------------------------------------------------------\\
//----------------------------------------------------------------------------------\\
// проверяем успешность загрузки видео
if IsPicChecVideo then
begin
// чекбокс - Пуск - Пауза
with TNewCheckBox.Create(WizardForm) do
begin
Parent := WizardForm;
SetBounds(ScaleX(24), ScaleY(330), ScaleX(90), ScaleY(14));
Caption := 'Пуск - Пауза';
Checked := true;
OnClick := @RunStop;
end;
// трекбар - Громкость
if IsPicChecSound then
with TTrackBar.Create(WizardForm) do
begin
Parent := WizardForm;
SetBounds(ScaleX(138), ScaleY(326), ScaleX(100), ScaleY(23));
Min := -5000;
Max := 0;
Position := -3000;
TickMarks := tmBoth;
TickStyle := tsNone;
OnChange := @SetVolume;
end;
IsPicSetVolume(-3000);
end else
MsgBox('False!', mbInformation, MB_OK);
//----------------------------------------------------------------------------------\\
end;
procedure DeinitializeSetup();
begin
IsPicDeInit;
end;
можно мне название проги, которой узнавал? что-то vegas совсем барахлитзвуковая дорожка есть, она просто нулевого размера )