sjwrec
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ; Скрипт сгенерирован в 2010 © SJW Records, Inc ; Скрипт работает в XP. ; Работает даже в Windows 7, только если установленны кодеки видео, иначе только звук. [Setup] AppName=My Program AppVerName=My Program 1.5 DefaultDirName=C:\My Program OutputBaseFilename=setup Compression=none DiskSpanning=true DiskSliceSize=1457664000 backcolor=clBlack //WizardImageFile=WizardImage.bmp //WizardSmallImageFile=WizardSmallImage.bmp //SetupIconFile=IDI_ICON1.ico [Languages] Name: "russian"; MessagesFile: Russian.isl [Mesages] BeveledLabel=2010 © SJW Records, Inc [Files] ;Видеокодек: MPEG2 ;Адиокодек: MP3 ;Размер: 640х480 Source: video.avi; DestDir: {tmp}; Flags: dontcopy nocompression ;Остальные файлы //Source: "Data\*"; DestDir: {app}; [_Code] const MFW=640; //Ширина видео-окна (размеры указывать по размеру видео!) MFH=480; //Высота видео-окна (размеры указывать по размеру видео!) //Растяжение видео недоступно! Я не знаю как это сделать var CommandString: String; FileName: String; AviFrameTop, AviFrameLeft, DesktopW, DesktopH: Integer; function mciSendString(lpstrCommand: string; lpstrReturnString: PChar; uReturnLength:integer; hwndCallback:integer):integer; external 'mciSendStringA@winmm.dll stdcall'; function GetSystemMetrics(nIndex:Integer):Integer; external 'GetSystemMetrics@user32.dll stdcall'; procedure VideoButtonOnClick(Sender: TObject); begin if MainForm.Visible then begin CommandString:= 'Close AVIFile'; mciSendString(CommandString, '', 0, 0); MainForm.Visible:= False; //Закрытие видео-окна end else begin FileName:= ExpandConstant('{tmp}\video.avi'); MainForm.Width:= MFW; //Ширина видео-окна MainForm.Height:= MFH; //Высота видео-окна MainForm.BorderIcons:=[biSystemMenu] //C окна убраются кнопки свернуть и развернуть MainForm.BORDERSTYLE := bsSingle; //Запрет на изменение разменра окна AviFrameTop:= MFW; AviFrameLeft:= MFH; DesktopW:= GetSystemMetrics(0) DesktopH:= GetSystemMetrics(1) CommandString:= 'Open ' + FileName + ' type AVIVideo alias AVIFile parent ' + IntToStr(MainForm.Handle) + ' style child'; mciSendString(CommandString, '', 0, 0); CommandString:= 'put AVIFile window at ' + IntToStr(AviFrameLeft) + ' ' + IntToStr(AviFrameTop); mciSendString(CommandString, '', 0, 0); CommandString:= 'Play AVIFile repeat'; mciSendString(CommandString, '', 0, 0); MainForm.Visible:= True; //Показ видео-окна end; end; procedure InitializeWizard(); var VideoButton: TNewButton; begin WizardForm.CancelButton.BringToFront; VideoButton := TNewButton.Create(MainForm); with VideoButton do begin Left := 147; Top := 327; Width := 80; Height := 23; Parent := WizardForm; Enabled:=True; Caption := '< Видео >'; OnClick := @VideoButtonOnClick; ShowHint := True; Hint := 'Показать/скрыть фоновое окно'; end with WizardForm do begin Position:=poScreenCenter with CancelButton do begin ShowHint := True; Hint := 'Отменить установку'; end with NextButton do begin ShowHint := True; Hint := 'Следующий шаг установки'; end with BackButton do begin ShowHint := True; Hint := 'Вернуться на один шаг назад'; end ExtractTemporaryFile(ExpandConstant('video.avi')); FileName:= ExpandConstant('{tmp}\video.avi'); MainForm.Width:= MFW; //Ширина видео-окна MainForm.Height:= MFH; //Высота видео-окна MainForm.BorderIcons:=[biSystemMenu] //C окна убраются кнопки свернуть и развернуть MainForm.BORDERSTYLE := bsSingle; //Запрет на изменение разменра окна AviFrameTop:= 0; AviFrameLeft:= 0; CommandString:= 'Open ' + FileName + ' type AVIVideo alias AVIFile parent ' + IntToStr(MainForm.Handle) + ' style child'; mciSendString(CommandString, '', 0, 0); CommandString:= 'put AVIFile window at ' + IntToStr(AviFrameLeft) + ' ' + IntToStr(AviFrameTop); mciSendString(CommandString, '', 0, 0); CommandString:= 'Play AVIFile repeat'; //Повторять видео mciSendString(CommandString, '', 0, 0); MainForm.Visible:= True; //Показ видео-окна end; end; procedure CurPageChanged(CurPageID: Integer); begin if CurPageID=wpInstalling then begin MainForm.Center; //Выводит видео окно по центру экрана WizardForm.MainPanel.Visible:=False; WizardForm.Bevel1.Visible:=False; WizardForm.Width:=ScaleX(395); WizardForm.Height:=ScaleY(142); WizardForm.InnerNotebook.Left:=ScaleX(10); WizardForm.InnerNotebook.Top:=ScaleY(10); WizardForm.InnerNotebook.Width:=ScaleX(370); WizardForm.StatusLabel.Left:=ScaleX(0); WizardForm.StatusLabel.Top:=ScaleY(0); WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width; WizardForm.FileNameLabel.Left:=ScaleX(0); WizardForm.FileNameLabel.Top:=ScaleY(20); WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width; WizardForm.ProgressGauge.Top:=ScaleY(40); WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width; WizardForm.CancelButton.Left:=ScaleX(154); WizardForm.CancelButton.Top:=ScaleY(80); // // Здесь должно быть помещение кнопки в мини инсталл end if CurPageID=wpFinished then begin WizardForm.Width:=502; WizardForm.Height:=392; WizardForm.Position:=poScreenCenter; // // Здесь должно быть восстановление кнопки на место end end; procedure DeinitializeSetup(); begin CommandString:= 'Close AVIFile'; // Закрыть видео при выходе mciSendString(CommandString, '', 0, 0); end; |