Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив] Inno Setup .:[все вопросы]:.

Закрытая тема
Настройки темы
[архив] Inno Setup .:[все вопросы]:.

Новый участник


Сообщения: 6
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: volk1234
Дата: 27-08-2009
Описание: перевел в архив
Лимит страниц.
Тема закрыта.
продолжаем тут:

Inno Setup. Обсуждение установщика

Скрипты Inno Setup. Помощь и советы



Полезные ресурсы:
Официальный сайт| Inno Setup 5.2.3 RU
Русская справка |Зеракало 1| Зеракало 2
ISTool 5.30 |Русификатор
Русификатор ISTool |Зеркало 1|Зеркало 2
Inno Setup Script Generator |Зеркало 1
Unpaker 2.1 от 21.04.2009 - распаковывает инсталляторы, созданные с помощью Inno Setup, начиная с версии 2.0.18 по 5.2.4.
InnoUnpaker 2.6b3 [от valeron87]- можнет просмотривать содержание CompiledCode.bin
Unpaker 0.23 - расширенная китайская версия 2008-08-08 ( модификация)
Unpacker 0.24 | Зеркало 1 | Зеркало 2 - Inno Setup Unpacker (innounp plus) - расширенная версия распаковщика инсталляторов Inno Setup начиная с версии 2.0.8 по 5.3.0 Beta. Поддерживаются версии Unicode. Русифицирована. Последний релиз: 0.24 [23.05.2009]
Набор Restools
Restools - расширенная версия Inno Setup от китайских разработчиков, добавляет вашему инсталлятору новые возможности по оформлению, а также более удобный редактор скриптов (требуется наличие установленного Preprocessor'а).
Последние версии разработок от Restools:
InnoCompiler090319_English - в него входят файлы: Compil32.exe и Templates.dat;
Inno_ISCmplr_Setup090302 - в него входят файлы, лучше из папки InnoSetup_FullVCL: setup.e32, ISCmplr.dls, ISCmplr.dll и SetupLdr.e32.
InnoCompiler090319_Russian - Русский перевод (80%) от tem000 - NEW !

QuickStart Pack - Inno Setup + Preprocessor (последняя версия ispack-5.2.4-dev)
"Всё в одном" от unikum111
читать дальше »

Цитата unikum111:
В сборку входят следующие компоненты:
Inno Setup compiler 5.2.2 русская версия;
ISTool 5.2.1 русская версия;
Inno Script Generator английская версия;
Inno Setup Unpacker Explorer 1.0 аглийская версия;
Примечание: в Inno Setup Unpacker Explorer 1.0 заменён innounp.exe на тестовую версию 2.0, так что распаковывает инсталляторы вплоть до версии 5.2.2.
Есть возможность выбора компонентов.
Скачать: ifolder, RapidShare, iBox (Размер: 5.34 Mb).»



Полезные мелочи для Inno Setup:

- Converter v.0.1.2 - конвертор REG- файлов в формат скриптов Inno от Serega_ -новая версия
- Как убрать страницу приветствия (wpWelcome) в мастере установки приложения:
- Примеры скриптов на паскале
- Inno Setup Addon 0.07 For Total Commander
- Параметры командной строки инсталляторов InnoSetup:

Код: Выделить весь код
/SP-
Отключает страницу "Эта программа установит... Вы хотите продолжить?" инсталятора. 
Выполнится только если DisableStartupPrompt секции [Setup] равна yes. 

/SILENT, /VERYSILENT  
Установка в ускоренном или очень ускоренном режиме. При установке в ускоренном режиме 
окно мастера и фоновое окно мастера не отображаются, отображается только окно прогресса. 
При очень ускоренной установке окно прогресса тоже не отображается. Остальная установка 
проходит как обычно - отображаются сообщения об ошибках в ходе установки, страница 
приветствия (если ее отображение не отменено директивой DisableStartupPrompt или 
параметром '/SP-' командной строки).

Если после установки необходима перезагрузка, команды '/NORESTART' не дано и установка 
проходит в ускоренном режиме, появится сообщение "Перезагрузить компьютер?". Если режим 
установки очень ускоренный, система перезагрузится не спрашивая.

/LOG 
Указывает инсталятору создать log-файл в папке TEMP для подробного отчета о действиях 
и событиях в секции [Run], предпринятых в ходе установки. Применяется при отслеживании 
ошибок. Например, если вы подозреваете, что файл не был удален, хотя должен был, 
log-файл сообщит, что файл былдействительно пропущен и почему. 

log-файлу присваивается уникальное имя на базе текущей даты. (Существующие файлы не 
перезаписываются и не дополняются). 
Информация, содержащаяся в log-файле, техническая и поэтому не может быть понята 
пользователем. 

/LOG="filename" 
Параметр похож на /LOG, но в отличие от него позволяет указать фиксированный
путь/имя файла для log-файла. Если файл с указанным именем уже существует, он будет 
заменен. Если файл не может быть создан, установка прервется и выдаст сообщение 
об ошибке.

/NOCANCEL  
Не дает пользователю прервать установку, отключая кнопку Отменить и игнорируя клики на 
кнопке Закрыть. Используется в комбинации с '/SILENT' или '/VERYSILENT'. 

/NORESTART 
Указывает инсталятору не перезагружать компьютер даже если это необходимо. 

/RESTARTEXITCODE=exit code  
Задает инсталятору код, который он должен возвратить, если необходима перезагрузка. 
Используется с '/NORESTART'.
См. также Коды выхода инсталятора. (кому интерестно, могу выложить или же доступно в хелпе)

/LOADINF="filename" 
Указывает инсталятору загрузить параметры установки из указанного файла после проверки 
командной строки. Этот файл может быть подготовлен с помощью '/SAVEINF='command.
Не забудьте ставить кавычки при использовании имен, содержащих пробелы. 

/SAVEINF="filename" 
Указывает инсталятору сохранять параметры установки в указанный файл.
Не забудьте ставить кавычки при использовании имен, содержащих пробелы. 

/LANG=language 
Задает используемый язык. language задает имя языка, заданного в параметре секции 
[Languages]. При использовании параметра /LANG появляется диалог Выбор языка установки.

/DIR="x:\dirname" 
Меняет имя папки, заданное по умолчанию, на странице Выбор папки назначения. 
Должен быть задан полный путь. 

/GROUP="folder name" 
Меняет имя папки на странице Выбор папки меню Пуск. Если директива 
DisableProgramGroupPage секции [Setup] равна yes, этот параметр командной строки 
игнорируется. 

/NOICONS 
Указывает инсталятору проверять, выбрана ли команда Не создавать значков на странице 
Выбор папки меню Пуск. 

/COMPONENTS="comma separated list of component names" 
Меняет выбраные по умолчанию компоненты. В этом случае параметр командной строки 
указывает инсталятору менять тип установки на Выборочный. 

/PASSWORD=password  Задает пароль. Если не указана директива Password секции [Setup], 
этот параметр игнорируется. Если введен неправильный пароль, параметр 
также игнорируется.

Отправлено: 21:42, 17-03-2005

 

Аватара для tem000

Пользователь


Сообщения: 96
Благодарности: 7

Профиль | Отправить PM | Цитировать


Serega_, ну ты крут!!! РЕСПЕКТ

Отправлено: 13:42, 21-02-2009 | #461



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


Serega_, а есть возможность добавить в скрипт, чтоб и во время установки тоже была картинка (возможно смещение прогрессбара вниз и показ слайд-шоу в окне инсталлятора)?

Отправлено: 14:50, 23-02-2009 | #462


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Цитата de_MAX:
чтоб и во время установки тоже была картинка (возможно смещение прогрессбара вниз и показ слайд-шоу в окне инсталлятора)? »
Вы имеете ввиду

То на сколько я понимаю, там картинка просто накладывается сверху мастера и прогресс бар ничто иное, как обычный .gif. Ну мне тяжело судить я не видел сам инсталлятор и могу делать только предположения...

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 16:05, 23-02-2009 | #463


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Serega_:
Вы имеете ввиду
так? »
Именно так. Но насколько я знаю это именно прогрессбар установки. Где-то встречал подобный скрипт, но не могу найти.

Отправлено: 16:23, 23-02-2009 | #464


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


de_MAX, не знаю, надо подумать...

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 16:45, 23-02-2009 | #465


Новый участник


Сообщения: 8
Благодарности: 1

Профиль | Отправить PM | Цитировать


Serega_, нашел нечто подобное. Там конечно много всего лишнего.
читать дальше »
Код: Выделить весь код
Code]
////////////////////////////////////////////////////
{Установка слайдшоу на окне инсталятора}
type
  TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);

var
  URLLabel: TNewStaticText;
  TimerID: LongWord;
  currTime: Integer;
  SplashImage: TBitmapImage;

function WrapTimerProc(callback:TProc; paramcount:integer):longword;
  external 'wrapcallback@files:InnoCallback.dll stdcall';

function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord;
  external 'SetTimer@user32.dll stdcall';

function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord;
  external 'KillTimer@user32.dll stdcall';

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
   currTime := currTime + 1;
   case currTime of
   {#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_2.bmp')) end;
   2*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_3.bmp')) end;
   3*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_4.bmp')) end;
   4*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_5.bmp')) end;
   5*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_6.bmp')) end;
   6*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_7.bmp')) end;
   7*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_8.bmp')) end;
   8*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_9.bmp')) end;
   9*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_10.bmp'))end;
   end;
   if CurrTime = 9*{#TIME_FOR_VIEW} then CurrTime := -1;
end;
///////////////////////////////////////////////////
const
  BASS_SAMPLE_LOOP        = 4;   //повторение

type
  HSTREAM = DWORD;      //тип звукового потока

function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean;
external 'BASS_Init@files:BASS.dll stdcall delayload';

function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): HSTREAM;
external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';

function BASS_Start(): Boolean;
external 'BASS_Start@files:BASS.dll stdcall delayload';

function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean;
external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';

function  BASS_Stop(): Boolean;
external 'BASS_Stop@files:BASS.dll stdcall delayload';

function  BASS_Free(): Boolean;
external 'BASS_Free@files:BASS.dll stdcall delayload';
///////////////////////////////
var
  state, soft: boolean;
  Image1, Image2: TBitmapImage;
const
  NeedSize = 6;
  DRIVE_UNKNOWN = 0;
  DRIVE_NO_ROOT_DIR = 1;
  DRIVE_REMOVEABLE = 2;
  DRIVE_FIXED = 3;
  DRIVE_REMOTE = 4;
  DRIVE_CDROM = 5;
  DRIVE_RAMDISK = 6;

var
  ListBox: TListBox;

function GetLogicalDrives: DWORD;
  external 'GetLogicalDrives@kernel32.dll stdcall';

function GetDriveType(nDrive: string): Longint;
  external 'GetDriveTypeA@kernel32.dll stdcall';

function GetVideoCardName(): PChar;
  external 'hwc_GetVideoCardName@files:get_hw_caps.dll stdcall';

function GetSoundCardName(): PChar;
  external 'hwc_GetSoundCardName@files:get_hw_caps.dll stdcall';

function DetectHardware(): Integer;
  external 'hwc_DetectHardware@files:get_hw_caps.dll stdcall';

function GetHardDriveFreeSpace(hdd: integer): Integer;
  external 'hwc_GetHardDriveFreeSpace@files:get_hw_caps.dll stdcall';

function GetHardDriveName(hdd: integer): PChar;
  external 'hwc_GetHardDriveName@files:get_hw_caps.dll stdcall';

function GetHardDriveTotalSpace(hdd: integer): Integer;
  external 'hwc_GetHardDriveTotalSpace@files:get_hw_caps.dll stdcall';

function GetHardDrivesCount(): Integer;
  external 'hwc_GetHardDrivesCount@files:get_hw_caps.dll stdcall';

function GetSoundCards(): Integer;
  external 'hwc_GetSoundCards@files:get_hw_caps.dll stdcall';

function GetSystemPage(): Integer;
  external 'hwc_GetSystemPage@files:get_hw_caps.dll stdcall';

function GetSystemPhys(): Integer;
  external 'hwc_GetSystemPhys@files:get_hw_caps.dll stdcall';

function GetVidMemLocal(): Integer;
  external 'hwc_GetVidMemLocal@files:get_hw_caps.dll stdcall';

function GetVidMemNonLocal(): Integer;
  external 'hwc_GetVidMemNonLocal@files:get_hw_caps.dll stdcall';

function GetVideoCardDev(): Integer;
  external 'hwc_GetVideoCardDev@files:get_hw_caps.dll stdcall';

function GetVideoCardVen(): Integer;
  external 'hwc_GetVideoCardVen@files:get_hw_caps.dll stdcall';

function DelSp(const s: string): string; // функция удаления пробелов в начале строки
var
  c, i: integer;
  stt, st, st1: string;
begin
  c := 0;
  st := s;

  for i := 1 to Length(st) do
  begin

    stt := copy(st, i, 1);
    if (stt = ' ') and (c >= 1) then
    begin
      st1 := st1;
      c := c + 1;
    end
    else if (stt = ' ') and (c = 0) then
    begin
      c := c + 1;
      st1 := st1 + stt;
    end
    else if (stt <> ' ') then
    begin
      c := 0;
      st1 := st1 + stt;
    end
  end;

  Result := st1;
end;

procedure URLLabelOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'http://game-torrent.info', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

procedure ListBoxOnClick(Sender: TObject);
var
  NewLetter, OldString: string;
  i: Integer;
begin
  for i := 0 to ListBox.Items.Count - 1 do
  begin
    if ListBox.Selected[i] then
    begin
      NewLetter := Copy(ListBox.Items[i], 0, 1);
      OldString := Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text));
      WizardForm.DirEdit.Text := NewLetter + OldString;
    end;
  end;
end;


procedure InitializeWizard();
var
  Name1: string;
  i: Integer;
  Text: TNewStaticText;
  Path: string;
  FreeMB, TotalMB: Cardinal;
  drives: DWORD;

begin
   ExtractTemporaryFile('BASS.dll');
     ExtractTemporaryFile('my.mp3');
  if BASS_Init(-1, 44100, 0, 0, 0) then
begin
  BASS_Start();
   Name1:=ExpandConstant('{tmp}\my.mp3');
    i:=BASS_StreamCreateFile(FALSE, PChar(Name1), 0, 0, 4);
  if i <> 0 then
	begin
  BASS_ChannelPlay(i, True);
end
end

///////////////////////////////////////////////////////////
{Изменение окна инсталятора с пермещение прогрессбара}
  ExtractTemporaryFile('Image_1.bmp');
  ExtractTemporaryFile('Image_2.bmp');
  ExtractTemporaryFile('Image_3.bmp');
  ExtractTemporaryFile('Image_4.bmp');
  ExtractTemporaryFile('Image_5.bmp');
  ExtractTemporaryFile('Image_6.bmp');
  ExtractTemporaryFile('Image_7.bmp');
  ExtractTemporaryFile('Image_8.bmp');
  ExtractTemporaryFile('Image_9.bmp');
  ExtractTemporaryFile('Image_10.bmp');

  currTime := 0;

  WizardForm.ProgressGauge.Parent := WizardForm;
  WizardForm.ProgressGauge.Top := WizardForm.CancelButton.Top + 10;
  WizardForm.ProgressGauge.Left := ScaleX(10);
  WizardForm.ProgressGauge.Width := WizardForm.Width - WizardForm.CancelButton.Width - ScaleX(40);
  WizardForm.ProgressGauge.Height := 12;
  WizardForm.ProgressGauge.Hide;
  WizardForm.StatusLabel.Parent := WizardForm;
  WizardForm.StatusLabel.Left := ScaleX(10);
  WizardForm.StatusLabel.Width := WizardForm.ProgressGauge.Width;
  WizardForm.StatusLabel.Top := WizardForm.ProgressGauge.Top - ScaleY(18);
  WizardForm.StatusLabel.Hide;

  SplashImage := TBitmapImage.Create(WizardForm);
  SplashImage.Top := 0;
  SplashImage.Left := 0;
  SplashImage.Width := WizardForm.MainPanel.Width;
  SplashImage.Height := WizardForm.Bevel.Top;
  SplashImage.Parent := WizardForm.InnerPage;
  SplashImage.Stretch := True;
  SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_1.bmp'));
  SplashImage.Hide;
///////////////////////////////////////////////////////////

  URLLabel := TNewStaticText.Create(WizardForm);
  URLLabel.Caption := 'Special for Game-Torrent.info';
  URLLabel.Cursor := crHand;
  URLLabel.OnClick := @URLLabelOnClick;
  URLLabel.Parent := WizardForm;
  { Alter Font *after* setting Parent so the correct defaults are inherited first }
  URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
  URLLabel.Font.Color := clBlue;
  URLLabel.Top :=  330;
  URLLabel.Left := 30;

  ExtractTemporaryFile('Welcome.bmp')
  ExtractTemporaryFile('Finish.bmp')
  WizardForm.WizardSmallBitmapImage.Top:=0
  WizardForm.WizardSmallBitmapImage.Left:=0
  WizardForm.WizardSmallBitmapImage.Width:=498
  WizardForm.WizardSmallBitmapImage.Height:=58
  WizardForm.PageNameLabel.Visible:=false
  WizardForm.PageDescriptionLabel.Visible:=false
  WizardForm.FinishedLabel.Visible:=False
  WizardForm.FinishedHeadingLabel.Visible:=False
  WizardForm.WelcomeLabel1.Visible:=False
  WizardForm.WelcomeLabel2.Visible:=False
  Text := TNewStaticText.Create(WizardForm);
  Text.Top := 102;
  Text.Width := 332;
  Text.Height := 14;
  Text.Caption := 'Список жестких дисков и свободного места';
  Text.Parent := WizardForm.SelectDirPage;

  ListBox := TListBox.Create(WizardForm);
  ListBox.Top := 120;
  ListBox.Width := 332;
  ListBox.Height := ScaleY(90);
  ListBox.Parent := WizardForm.SelectDirPage;
  ListBox.OnClick := @ListBoxOnClick;
  ListBox.Font.Name := 'Courier New';
  ListBox.Font.Size := 10;
  ListBox.Font.Style := [fsBold];
  ListBox.Color := clBtnFace;

  drives := GetLogicalDrives();
  for i := 0 to 31 do
  begin
    if (drives and (1 shl i)) > 0 then
    begin
      Path := chr(ord('A') + i) + ':\';
      if GetDriveType(Path) = DRIVE_FIXED then
      begin
        GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
        if FreeMB>1024 then ListBox.Items.Add(Path + '  ' + IntToStr(round(FreeMB / TotalMB * 100)) + '%  ' + floatToStr(round(FreeMB/1024*100)/100) + ' GB')
        else ListBox.Items.Add(Path + '  ' + IntToStr(round(FreeMB / TotalMB * 100)) + '%  ' + IntToStr(FreeMB) + ' MB');
      end;
    end;
  end;
end;


function NextButtonClick(CurPageID: Integer): Boolean;
var
  Path,s,z: String;
  FreeMB, TotalMB: Cardinal;
begin
  Result:= True;
  if CurPageID = wpSelectDir then
    begin
      Path:= ExtractFileDrive(WizardForm.DirEdit.Text);
      GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
       if FreeMB < (NeedSize*1024) then
    begin
      if FreeMB>1024 then
      begin
       s:='Для установки приложения необходимо '+ IntTostr(NeedSize)+ ' GB,'#13+'а на выбранном Вами диске доступно только '+ floatToStr(round(FreeMB/1024*100)/100) + ' GB!'
      end
        else s:='Для установки приложения необходимо '+ IntTostr(NeedSize)+ ' GB,'#13+'а на выбранном Вами диске доступно только '+ + IntToStr(FreeMB)+' MB';
      MsgBox(s, mbCriticalError, MB_OK)
        Result := False;
    end;
    end;
////////////////////////////////
begin
if CurPageID = wpUserInfo then
begin
Result:=true;
if not state
or not soft
then
begin
z:='Не все компоненты удовлетворяют требованиям игры.' #13+#13 'Вы действительно хотите продолжить установку?'
if MsgBox(z, mbInformation, MB_YESNO)=idNo
then Result:=false;
end
end
end
end;

procedure CurPageChanged(CurPageID: Integer);
var
  Text: TNewStaticText;
  Windows,WindowsName: TMemo;
  Os,OS1,OS2,OS3,OS4,OS5,OS6,OS7,OS8,OS9,OS10,HARD: string; // строка с названием необходимой ОС
  ProcessorName: string;
  Processor, VideoCardPanel, AudioCardPanel, RAMPanel, PageFilePanel: TMemo;
  ProcessorNamePanel, VideoCardNamePanel, AudioCardNamePanel, RAMTotalPanel, PageFileTotalPanel: TMemo;
  ProcessorMHZ: Cardinal;
  StaticText: TNewStaticText;
  VidRam: integer;
  pfunc: LongWord;
begin
/////////////////////////////////////////
{Здесь код показа на странице Инсталл измененного прогрессбара}
if (CurPageID = wpInstalling) then
     begin
      pfunc := WrapTimerProc(@OnTimer, 5);
      TimerID := SetTimer(0, 0, 1000, pfunc);

      WizardForm.InnerNotebook.Hide;
      WizardForm.Bevel1.Hide;
      WizardForm.MainPanel.Hide;
      WizardForm.PageNameLabel.Hide;
      WizardForm.PageDescriptionLabel.Hide;
      URLLabel.Hide;

      WizardForm.ProgressGauge.Show;
      SplashImage.Show;
      WizardForm.StatusLabel.Show;

      WizardForm.CancelButton.Enabled :=True;
     end
  else
    begin
    URLLabel.Show;
    WizardForm.ProgressGauge.Hide;
    SplashImage.Hide;
    WizardForm.StatusLabel.Hide;
    //WizardForm.FilenameLabel.Hide;

    if (CurPageID > wpInstalling) and (CurPageID < wpFinished) then
     begin
      WizardForm.InnerNotebook.Show;
      WizardForm.Bevel1.Show;
      WizardForm.MainPanel.Show;
      WizardForm.PageNameLabel.Show;
      WizardForm.PageDescriptionLabel.Show;
     end;

    end;
//////////////////////////////////////////////////////////////
If CurPageID=wpFinished then
  begin
   Image2:=TBitmapImage.Create(WizardForm)
 with Image2 do begin
   Left:=0
   Top:=0
   Width:=497
   Height:=313
   Parent:=WizardForm.FinishedPage
   Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\Finish.bmp')
  end
  WizardForm.NextButton.Left:=380;
  WizardForm.NextButton.Top:=325;
 end
 //////////////////////////////
 If CurPageID=wpWelcome then
 begin
  If WizardForm.FindComponent('NextButton') is TButton
then
  TButton(WizardForm.FindComponent('NextButton')).Caption:='Начать>';
  end
  begin
   Image1:=TBitmapImage.Create(WizardForm)
 with Image1 do begin
   Left:=0
   Top:=0
   Width:=497
   Height:=313
   Parent:=WizardForm.WelcomePage
   Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\Welcome.bmp')
  end
  end
  if CurPageID=wpSelectTasks then
 begin
  If WizardForm.FindComponent('NextButton') is TButton
then
  TButton(WizardForm.FindComponent('NextButton')).Caption:='Установка';
  If WizardForm.FindComponent('CancelButton') is TButton
then
  TButton(WizardForm.FindComponent('CancelButton')).Caption:='Выход';
  end
 if CurPageID = wpUserInfo then
  begin
  //подменяем сраницу информации о пользователе на информацию об ОС
    wizardForm.UserInfoNameEdit.visible:=false;
    wizardForm.UserInfoNameEdit.text:='Игрок'; //на случай, когда имя пользователя не указано в системе
    wizardForm.UserInfoNameLabel.visible:=false;
    wizardForm.UserInfoOrgLabel.visible:=false;
    wizardForm.UserInfoOrgEdit.visible:=false;
    wizardForm.UserInfoOrgEdit.text:='Группа игроков ';//на случай, когда организация не указано в системе
    wizardForm.PageNameLabel.Caption := 'Аппаратное обеспечение и Операционная система';
    wizardForm.PageDescriptionLabel.Caption := 'Программа установки обнаружила следующие необходимые компоненты и Операционную систему ';
    RegQueryStringValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0', 'ProcessorNameString', ProcessorName);
    RegQueryDWordValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0', '~MHz', ProcessorMHZ);

  OS:=' Microsoft Windows XP Service Pack 2';
  OS10:=' Microsoft Windows XP Service Pack 3'; //строка является записью из реестра
  OS1:=' Microsoft Windows 2000 Service Pack 4'; //строка является записью из реестра
  OS2:=' Windows Vista (TM) Ultimate ';
  OS3:=' Windows Vista (TM) Home Basic ';
  OS4:=' Windows Vista (TM) Home Premium ';
  OS5:=' Windows Vista (TM) Business ';
  OS6:=' Windows Vista (TM) Ultimate Service Pack 1'
  OS7:=' Windows Vista (TM) Home Basic Service Pack 1';
  OS8:=' Windows Vista (TM) Home Premium Service Pack 1';
  OS9:=' Windows Vista (TM) Business Service Pack 1';
  HARD:='Все компоненты удовлетворяют требованиям игры.';
  Windows := TMemo.Create(WizardForm);

  StaticText := TNewStaticText.Create(TNewStaticText.Create(WizardForm));
  with StaticText do begin
    Left := 0;
    Top := 52;
    Width := 417;
    Height := 14;
    Caption := 'Все компоненты удовлетворяют требованиям игры.';
    Parent := WizardForm.UserInfoPage;
    StaticText.font.color:=clGreen;
  end


  with Windows do
  begin
    Text := ' Операц. система';
    Parent := WizardForm.UserInfoPage;

    Left := ScaleX(0); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(20);
    Width := ScaleX(106); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.

    ReadOnly := True;
    Color := clBtnFace;
  end
    Processor := TMemo.Create(WizardForm);
  with Processor do begin
    Text := ' Процессор';
    Parent := WizardForm.UserInfoPage;

    Left := ScaleX(0); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(77);
    Width := ScaleX(106); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.

    ReadOnly := True;
    Color := clBtnFace;
  end
    VideoCardPanel := TMemo.Create(WizardForm);
  with VideoCardPanel do begin
    Text := ' Видеоадаптер';
    Parent := WizardForm.UserInfoPage;

    Left := ScaleX(0); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(104);
    Width := ScaleX(106); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.

    ReadOnly := True;
    Color := clBtnFace;
  end
    AudioCardPanel := TMemo.Create(WizardForm);
  with AudioCardPanel do begin
    Text := ' Звуковая карта';
    Parent := WizardForm.UserInfoPage;
    Color := clBtnFace;
    Left := ScaleX(0); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(131);
    Width := ScaleX(106); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.

    ReadOnly := True;

  end
    RAMPanel := TMemo.Create(WizardForm);
  with RAMPanel do begin
    Text := ' ОЗУ';
    Parent := WizardForm.UserInfoPage;
    Color := clBtnFace;
    Left := ScaleX(0); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(158);
    Width := ScaleX(106); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.


    ReadOnly := True;

  end

  PageFilePanel := TMemo.Create(WizardForm);
  with PageFilePanel do begin
    Text := ' Файл подкачки';
    Parent := WizardForm.UserInfoPage;
    Color := clBtnFace;
    Left := ScaleX(0); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(185);
    Width := ScaleX(106); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.


    ReadOnly := True;

    ProcessorNamePanel := TMemo.Create(WizardForm);
   with ProcessorNamePanel do begin

    Text :=  DelSP(ProcessorName) + '  ' + IntToStr(ProcessorMHZ) + 'MHz'; //новое обработанное значение строки
    Parent := WizardForm.UserInfoPage;

    Left := ScaleX(110); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(77);
    Width := ScaleX(304); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.

    ReadOnly := True;
    Color := $CCFFCC;

    if ProcessorMHZ < 2800 then
  begin
    ProcessorNamePanel.Color := $ccccff;
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям игры.';
    StaticText.font.color:=clRed;
  end;

  VideoCardNamePanel := TMemo.Create(WizardForm);
  with VideoCardNamePanel do begin
    Text :=  ' ' + GetVideoCardName + 'MB'; //+'    ОЗУ-'+inttostr(round(GetVidMemLocal/1000000))+' МБ'
    Parent := WizardForm.UserInfoPage;
    VidrAM := GetVidMemLocal / 1000000;

    if VidRam > 127 then
    begin
      if VidRam < 200 then text := text + ' ОЗУ - 128 МB'
      else if VidRam < 300 then text := text + ' ОЗУ - 256 МB'
      else if VidRam < 400 then text := text + ' ОЗУ - 384 МB'
      else if VidRam > 500 then text := text + ' ОЗУ - 512 МB';
    end;

    Left := ScaleX(110); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(104);
    Width := ScaleX(304); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.

    ReadOnly := True;
    Color := $CCFFCC;

    if GetVidMemLocal < 255000000 then //128 MB
  begin
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям игры.';
    StaticText.font.color:=clRed;
    VideoCardNamePanel.Color := $ccccff;
  end;


  end
    AudioCardNamePanel := TMemo.Create(WizardForm);
  with AudioCardNamePanel do begin
    Text := ' ' + GetSoundCardName;
    Parent := WizardForm.UserInfoPage;
     Color := $CCFFCC;
    Left := ScaleX(110); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(131);
    Width := ScaleX(304); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R

    ReadOnly := True;

  end
    RAMTotalPanel := TMemo.Create(WizardForm);
  with RAMTotalPanel do begin
    Text :=  ' ' + IntToStr(GetSystemPhys + 1) + ' MB';
    Parent := WizardForm.UserInfoPage;
    Color := $CCFFCC;

    Left := ScaleX(110); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(158);
    Width := ScaleX(304); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.

    ReadOnly := True;
    if GetSystemPhys + 1 < 1024 then
  begin
    RAMTotalPanel.Color := $ccccff;
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям игры.';
    StaticText.font.color:=clRed;
  end;
  end;

  PageFileTotalPanel := TMemo.Create(WizardForm);
  with PageFileTotalPanel do begin
    Text :=  ' ' + IntToStr(GetSystemPage) + ' MB';
    Parent := WizardForm.UserInfoPage;
    Color := $CCFFCC;

    Left := ScaleX(110); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(185);
    Width := ScaleX(304); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.

    ReadOnly := True;
    if GetSystemPage < 1247 then
  begin
    PageFileTotalPanel.Color := $ccccff;
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям игры.';
    StaticText.font.color:=clRed;
  end;
  end;


  end

  if ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion,ProductName|}')='' then
   begin

    WindowsName := TMemo.Create(WizardForm);
    with WindowsName do begin
    Text := ExpandConstant(' {reg:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion,ProductName|}')+ExpandConstant(' {reg:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion,CSDVersion|}');
    Parent := WizardForm.UserInfoPage;

    Left := ScaleX(110); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(20);
    Width := ScaleX(304); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.

    ReadOnly := True;
    Color := $CCFFCC;
   end

  end

 end;

 // Проверка Windows 9x
   if ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion,ProductName|}')<>'' then
  begin
   WindowsName := TMemo.Create(WizardForm);
   with WindowsName do begin
    Text := ExpandConstant(' {reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion,ProductName|}')+ExpandConstant(' {reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion,CSDVersion|}');
    Parent := WizardForm.UserInfoPage;
    Color := $CCFFCC;
    Left := ScaleX(110); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(20);
    Width := ScaleX(304); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.

    ReadOnly := True;

  end

  end;


  if OS=(WindowsName.Text) then state:=true else
  if OS2=(WindowsName.Text) then state:=true else
  if OS3=(WindowsName.Text) then state:=true else
  if OS4=(WindowsName.Text) then state:=true else
  if OS5=(WindowsName.Text) then state:=true else
  if OS6=(WindowsName.Text) then state:=true else
  if OS7=(WindowsName.Text) then state:=true else
  if OS8=(WindowsName.Text) then state:=true else
  if OS9=(WindowsName.Text) then state:=true else
  if OS10=(WindowsName.Text) then state:=true else
  if OS1=(WindowsName.Text) then state:=true else state:=false;

////////////////////////////////////////////////////////////////////////
{условие проверки оборудования}
  if HARD=(StaticText.Caption) then soft:=true else soft:=false;
////////////////////////////////////////////////////////////////////////
  Text := TNewStaticText.Create(WizardForm);
    with Text do begin
    Left := 0;
    Top := 0;
    Width := 417;
    Height := 14;
    if state then
     begin
      Font.Color:=clGreen;
      WindowsName.color:=$CCFFCC;
     // SP_Num.color:=$CCFFCC;
      Caption := 'Операционная система соответствует требованиям игры.';
     end
    else
     begin
      Font.Color:=clREd;
      WindowsName.color:=clRed;

      WindowsName.Left := ScaleX(110); //оригинал S.T.A.L.K.E.R.
      WindowsName.Top := ScaleY(20);
      WindowsName.Width := ScaleX(304); //оригинал S.T.A.L.K.E.R.
      WindowsName.Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.
      WindowsName.ReadOnly := True;



      Caption := 'Операционная система не соответствует требованиям игры.';
     end
    Parent := WizardForm.UserInfoPage;
  end
    Text := TNewStaticText.Create(TNewStaticText.Create(WizardForm));
  with Text do begin
    Left := 0;
    Top := 220;
    Width := 417;
    Height := 14;
    Caption := 'Когда Вы будете готовы продолжить установку, нажмите «Далее».';
    Parent := WizardForm.UserInfoPage;
  end

 end;
end;

procedure DeInitializeSetup();
begin
 KillTimer(0, TimerID);
 BASS_Stop(); //нужно для остановки проигрывания
 BASS_Free(); //нужно для быстрой выгрузки библиотеки вместе с муз. файлом
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:09, 26-02-2009 | #466


Аватара для tem000

Пользователь


Сообщения: 96
Благодарности: 7

Профиль | Отправить PM | Цитировать


Serega_, еще пару вопросов. При создании инсталятора с несколькими прогами как исправить создание ярлыков на рабочем столе, при указании создать ярлык для какой то одной
почему то на столе появляются ярлыки всех программ. И по поводу секции CODE, как добавить чекбоксы для запуска по выбору всех 3 программ. HELP PLIZZZZ!!! Скрипт приложил
читать дальше »

[Setup]
AppName=Any FLV Player Pack
AppVerName=Any FLV Player Pack
AppPublisher=www.any-flv-player.com
DefaultDirName={pf}\Any FLV Player Pack
DefaultGroupName=Any FLV Player Pack
OutputBaseFilename=Any FLV Player Pack ©
AllowNoIcons=true
Compression=lzma
SolidCompression=true
VersionInfoVersion=1.1.3.1
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
SetupIconFile=C:\Documents and Settings\Пользователь\Рабочий стол\Any FLV Player Pack\embedded\Install.ico
UninstallDisplayIcon={app}\Uninstall\unins000.exe
UninstallFilesDir={app}\Uninstall

[Files]
;Any FLV Player
Source: "C:\Documents and Settings\Пользователь\Рабочий стол\Any FLV Player Pack\{app}\Any FLV Player 1.1.3.1\*"; DestDir: "{app}\Any FLV Player 1.1.3.1"; Components: Any_FLV_Player; MinVersion: 4.1,4.0; Flags: ignoreversion recursesubdirs createallsubdirs
;Any Video Converter Professional
Source: "C:\Documents and Settings\Пользователь\Рабочий стол\Any FLV Player Pack\{app}\Any Video Converter Pro 2.7.1\*"; DestDir: "{app}\Any Video Converter Pro 2.7.1"; Components: Any_Video_Converter; MinVersion: 4.1,4.0; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{userappdata}\Any Video Converter Professional\profiles_v2.xml"; DestDir: "{userappdata}\Any Video Converter Professional"; Flags: ignoreversion
;Any DVD Converter Professional
Source: "C:\Documents and Settings\Пользователь\Рабочий стол\Any FLV Player Pack\{app}\Any DVD Converter Pro 3.7.1.0\*"; DestDir: "{app}\Any DVD Converter Pro 3.7.1.0"; Components: Any_DVD_Converter; MinVersion: 4.1,4.0; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{userappdata}\Any DVD Converter Professional\profiles_v2.xml"; DestDir: "{userappdata}\Any DVD Converter Professional"; Flags: ignoreversion

[Registry]
;Any FLV Player
Root: HKCR; SubKey: Applications\FlvPlayer.exe\shell\open\command; ValueType: string; ValueName: ; ValueData: """C:\Program Files\Any FLV Player Pack\Any FLV Player 1.1.3.1\FlvPlayer.exe"" ""%1"""
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv; ValueType: string; ValueName: Application; ValueData: FlvPlayer.exe; Tasks: fileassoc
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv\OpenWithList; ValueType: string; ValueName: a; ValueData: FlvPlayer.exe; Tasks: fileassoc
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv\OpenWithProgids; ValueType: string; ValueName: flv_auto_file; ValueData: hex(0):; Tasks: fileassoc
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv\OpenWithProgids; ValueType: string; ValueName: Winamp.File.FLV; ValueData: hex(0):; Tasks: fileassoc
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv\OpenWithProgids; ValueType: string; ValueName: SWF.max.flv; ValueData: hex(0):; Tasks: fileassoc
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv\OpenWithProgids; ValueType: string; ValueName: Flash.VideoFile; ValueData: hex(0):; Tasks: fileassoc
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: AutoPlay; ValueData: $00000001
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: AutoRepeat; ValueData: $00000001
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: ShowTitle; ValueData: $00000001
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: ShowTime; ValueData: $00000001
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: nControlPanelPosition; ValueData: $00000000
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: nControlPanelDisplay; ValueData: $00000001
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorControlPanel; ValueData: $00141414
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorButton; ValueData: $002525da
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorTime1; ValueData: $00ffffff
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorSlide; ValueData: $00f0f0f0
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorBufferSlide; ValueData: $00000000
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorBKSlide; ValueData: $00333333
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: CopyVideoFile; ValueData: $00000001
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: nBufferTime; ValueData: $00000005
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: nControlBarStyle; ValueData: $00000000
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: string; ValueName: language; ValueData: auto
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: string; ValueName: languageIni; ValueData: lang_rus.ini
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: languageAuto; ValueData: $00000000
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: nSizeRatio; ValueData: $00000001
;Any Video Converter Professional
Root: HKCU; Subkey: "Software\Any Video Converter Professional"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Any Video Converter Professional\Setting\Output"; ValueName: "UseTitleAsFileName"; ValueType: Dword; ValueData: "$1";
Root: HKCU; Subkey: "Software\Any Video Converter Professional\Setting\Output"; ValueName: "Video Aspect"; ValueType: String; ValueData: "4/3";
Root: HKCU; Subkey: "Software\Any Video Converter Professional\Setting\Output"; ValueName: "RetryTimes"; ValueType: Dword; ValueData: "$5";
;Any DVD Converter Professional
Root: HKCU; Subkey: "Software\Any DVD Converter Professional"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Any DVD Converter Professional\Setting\Output"; ValueName: "UseTitleAsFileName"; ValueType: Dword; ValueData: "$1";
Root: HKCU; Subkey: "Software\Any DVD Converter Professional\Setting\Output"; ValueName: "RetryTimes"; ValueType: Dword; ValueData: "$5";

[Run]
;Any FLV Player
;Filename: {app}\Any FLV Player 1.1.3.1\FlvPlayer.exe; Description: Запустить Any Flv Player; Flags: nowait postinstall skipifsilent unchecked
;Any Video Converter Professional
;Filename: {app}\Any Video Converter Pro 2.7.1\VideoConvPro.exe; Description: Запустить Any Video Converter Pro; Flags: nowait postinstall skipifsilent unchecked

[Icons]
;Any FLV Player
Name: {group}\Any Flv Player; Filename: {app}\Any FLV Player 1.1.3.1\FlvPlayer.exe
Name: {commondesktop}\Any Flv Player; Filename: {app}\Any FLV Player 1.1.3.1\FlvPlayer.exe; Tasks: desktopicon
;Any Video Converter Professional
Name: {group}\Any Video Converter Pro; Filename: {app}\Any Video Converter Pro 2.7.1\VideoConvPro.exe
Name: {commondesktop}\Any Video Converter Pro; Filename: {app}\Any Video Converter Pro 2.7.1\VideoConvPro.exe; Tasks: desktopicon
;Any DVD Converter Professional
Name: {group}\Any DVD Converter Pro; Filename: {app}\Any DVD Converter Pro 3.7.1.0\DVDConvPro.exe
Name: {commondesktop}\Any DVD Converter Pro; Filename: {app}\Any DVD Converter Pro 3.7.1.0\DVDConvPro.exe; Tasks: desktopicon

[Tasks]
Name: desktopicon; Description: Создать ярлык Any Flv Player на рабочем столе; GroupDescription: Дополнительные ярлыки:; Flags: unchecked
Name: desktopicon; Description: Создать ярлык Any Video Converter Pro на рабочем столе; GroupDescription: Дополнительные ярлыки:; Flags: unchecked
Name: desktopicon; Description: Создать ярлык Any DVD Converter Pro на рабочем столе; GroupDescription: Дополнительные ярлыки:; Flags: unchecked

Name: fileassoc; Description: Связать Any FLV Player, с файлами имеющими расширение .flv; MinVersion: 4.1,4.0; Flags: unchecked

[Components]
Name: Any_FLV_Player; Description: Any FLV Player 1.1.3.1; Types: full compact custom; MinVersion: 4.1,4.0
Name: Any_Video_Converter; Description: Any Video Converter Pro 2.7.1; Types: full; MinVersion: 4.1,4.0
Name: Any_DVD_Converter; Description: Any DVD Converter Pro 3.7.1.0; Types: full; MinVersion: 4.1,4.0

[Types]
Name: full; Description: Полная установка
Name: compact; Description: Компактная установка
Name: custom; Description: Выборочная установка; Flags: iscustom

[Messages]
BeveledLabel=Copyright © 2009

[Languages]
Name: Russian; MessagesFile: embedded\Russian.isl

[code]
var
WelcomeLabel1,WelcomeLabel2,FinishedHeadingLabel,RunLabel,
FinishedLabel,PageNameLabel,PageDescriptionLabel:TLabel;
RunMyProg: TCheckBox;

procedure RLabelOnClick(Sender: TObject);
begin
if RunMyProg.Checked=false then
begin
RunMyProg.Checked := true;
end else
RunMyProg.Checked := false;
end;

// функция для запуска программы если отмечен чебокс
procedure CurStepChanged(CurStep: TSetupStep);
var
ErrorCode: Integer;
begin
if CurStep = ssDone then
begin
if RunMyProg.Checked then
Exec(ExpandConstant('{app}\Any FLV Player 1.1.3.1\FlvPlayer.exe'), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
end;

procedure InitializeWizard();
begin
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
// не знаю почему, но Hide не действует. Поэтому просто уменьшил размер.
WizardForm.RunList.Height := 0;
WizardForm.RunList.Width := 0;

WizardForm.WizardBitmapImage.Align:=true;
WizardForm.WizardBitmapImage2.Align:=true;
WizardForm.WizardSmallBitmapImage.Align:=true;

WelcomeLabel1:=TLabel.Create(WizardForm);
WelcomeLabel1.Left:=ScaleX(150);
WelcomeLabel1.Top := ScaleY(22);
WelcomeLabel1.Width := ScaleX(320);
WelcomeLabel1.Height := ScaleY(75);
WelcomeLabel1.AutoSize := False;
WelcomeLabel1.WordWrap := True;
WelcomeLabel1.Font.Color := clBlack;
// здесь можно поиграть шрифтом.
WelcomeLabel1.Font.Style := [fsBold];
WelcomeLabel1.Font.Name:='Cambria';
WelcomeLabel1.Font.Size := 14;
WelcomeLabel1.Transparent := True;
WelcomeLabel1.Parent := WizardForm.WelcomePage;

WelcomeLabel2:=TLabel.Create(WizardForm);
WelcomeLabel2.Left := ScaleX(150);
WelcomeLabel2.Top := ScaleY(85);
WelcomeLabel2.Width := ScaleX(320);
WelcomeLabel2.Height := ScaleY(200);
WelcomeLabel2.AutoSize := False;
WelcomeLabel2.WordWrap := True;
WelcomeLabel2.Font.Color := clBlack;
WelcomeLabel2.Font.Size := 8;
WelcomeLabel2.Transparent := True;
WelcomeLabel2.Parent := WizardForm.WelcomePage;

PageNameLabel := TLabel.Create(WizardForm);
PageNameLabel.Left := ScaleX(35);
PageNameLabel.Top := ScaleY(13);
PageNameLabel.Width := ScaleX(300);
PageNameLabel.Height := ScaleY(14);
PageNameLabel.AutoSize := False;
PageNameLabel.WordWrap := True;
PageNameLabel.Font.Color := clBlack;
PageNameLabel.Font.Style := [fsBold];
PageNameLabel.Transparent := True;
PageNameLabel.Parent := WizardForm.MainPanel;

PageDescriptionLabel := TLabel.Create(WizardForm);
PageDescriptionLabel.Left := ScaleX(35);
PageDescriptionLabel.Top := ScaleY(30);
PageDescriptionLabel.Width := ScaleX(400);
PageDescriptionLabel.Height := ScaleY(30);
PageDescriptionLabel.AutoSize := False;
PageDescriptionLabel.WordWrap := True;
PageDescriptionLabel.Font.Color := clBlack;
PageDescriptionLabel.Transparent := True;
PageDescriptionLabel.Parent := WizardForm.MainPanel;

FinishedHeadingLabel:=TLabel.Create(WizardForm);
FinishedHeadingLabel.Left := ScaleX(150);
FinishedHeadingLabel.Top := ScaleY(22);
FinishedHeadingLabel.Width := ScaleX(320);
FinishedHeadingLabel.Height := ScaleY(75);
FinishedHeadingLabel.AutoSize := False;
FinishedHeadingLabel.WordWrap := True;
FinishedHeadingLabel.Font.Color := clBlack;
// здесь можно поиграть шрифтом.
FinishedHeadingLabel.Font.Style := [fsBold];
FinishedHeadingLabel.Font.Name:='Cambria';
FinishedHeadingLabel.Font.Size := 14;
FinishedHeadingLabel.Transparent := True;
FinishedHeadingLabel.Parent := WizardForm.FinishedPage;

FinishedLabel:=TLabel.Create(WizardForm);
FinishedLabel.Left := ScaleX(150);
FinishedLabel.Top := ScaleY(85);
FinishedLabel.Width := ScaleX(320);
FinishedLabel.Height := ScaleY(200);
FinishedLabel.AutoSize := False;
FinishedLabel.WordWrap := True;
FinishedLabel.Font.Color := clBlack;
FinishedLabel.Font.Size := 8;
FinishedLabel.Transparent := True;
FinishedLabel.Parent := WizardForm.FinishedPage;

RunMyProg := TCheckBox.Create(WizardForm);
RunMyProg.Parent := WizardForm.FinishedPage;
RunMyProg.Left := ScaleX(150);
RunMyProg.Top := ScaleY(185);
RunMyProg.Width := ScaleX(14);
RunMyProg.Height := ScaleX(14);
// RunMyProg.Checked := true; // чтоб чебокс был отмечен, раскоментируй строку

RunLabel:=TLabel.Create(WizardForm);
RunLabel.Left := ScaleX(170);
RunLabel.Top := ScaleY(185);
RunLabel.Width := ScaleX(200);
RunLabel.Height := ScaleY(20);
RunLabel.AutoSize := False;
RunLabel.WordWrap := True;
RunLabel.Font.Color := clBlack;
RunLabel.Font.Size := 8;
RunLabel.OnClick := @RLabelOnClick;
RunLabel.Transparent := True;
RunLabel.Parent := WizardForm.FinishedPage;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
WelcomeLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
WelcomeLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
FinishedHeadingLabel.Caption := WizardForm.FinishedHeadingLabel.Caption;
FinishedLabel.Caption := WizardForm.FinishedLabel.Caption;
// здесь придётся вручную вводить требуемый текст
RunLabel.Caption := 'Запустить Any Flv Player';
end;

Последний раз редактировалось tem000, 26-02-2009 в 15:50.


Отправлено: 15:36, 26-02-2009 | #467


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


tem000,
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Any FLV Player Pack
AppVerName=Any FLV Player Pack
AppPublisher=www.any-flv-player.com
DefaultDirName={pf}\Any FLV Player Pack
DefaultGroupName=Any FLV Player Pack
OutputBaseFilename=Any FLV Player Pack ©
AllowNoIcons=true
Compression=lzma
SolidCompression=true
VersionInfoVersion=1.1.3.1
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
SetupIconFile=C:\Documents and Settings\Пользователь\Рабочий стол\Any FLV Player Pack\embedded\Install.ico
UninstallDisplayIcon={app}\Uninstall\unins000.exe
UninstallFilesDir={app}\Uninstall

[Languages]
Name: Russian; MessagesFile: embedded\Russian.isl

[Messages]
BeveledLabel=Copyright © 2009

[Types]
Name: full; Description: Полная установка
; compact - не определена отдельно, следовательно не нужна... имхо
Name: compact; Description: Компактная установка
Name: custom; Description: Выборочная установка; Flags: iscustom

[Components]
Name: Any_FLV_Player; Description: Any FLV Player 1.1.3.1; Types: full compact custom; MinVersion: 4.1,4.0
Name: Any_Video_Converter; Description: Any Video Converter Pro 2.7.1; Types: full; MinVersion: 4.1,4.0
Name: Any_DVD_Converter; Description: Any DVD Converter Pro 3.7.1.0; Types: full; MinVersion: 4.1,4.0

[Tasks]
Name: AnyFlvPlayer; Description: Создать ярлык Any Flv Player на рабочем столе; GroupDescription: Дополнительные ярлыки:; Components: Any_FLV_Player; Flags: unchecked
Name: AnyVideoConverter; Description: Создать ярлык Any Video Converter Pro на рабочем столе; GroupDescription: Дополнительные ярлыки:; Components: Any_Video_Converter; Flags: unchecked
Name: AnyDVDConverter; Description: Создать ярлык Any DVD Converter Pro на рабочем столе; GroupDescription: Дополнительные ярлыки:; Components: Any_DVD_Converter; Flags: unchecked

Name: fileassoc; Description: Связать Any FLV Player, с файлами имеющими расширение .flv; MinVersion: 4.1,4.0; Components: Any_FLV_Player; Flags: unchecked

[Files]
Any FLV Player
Source: "C:\Documents and Settings\Пользователь\Рабочий стол\Any FLV Player Pack\{app}\Any FLV Player 1.1.3.1\*"; DestDir: "{app}\Any FLV Player 1.1.3.1"; Components: Any_FLV_Player; MinVersion: 4.1,4.0; Flags: ignoreversion recursesubdirs createallsubdirs
Any Video Converter Professional
Source: "C:\Documents and Settings\Пользователь\Рабочий стол\Any FLV Player Pack\{app}\Any Video Converter Pro 2.7.1\*"; DestDir: "{app}\Any Video Converter Pro 2.7.1"; MinVersion: 4.1,4.0; Components: Any_Video_Converter; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{userappdata}\Any Video Converter Professional\profiles_v2.xml"; DestDir: "{userappdata}\Any Video Converter Professional"; Components: Any_Video_Converter; Flags: ignoreversion
Any DVD Converter Professional
Source: "C:\Documents and Settings\Пользователь\Рабочий стол\Any FLV Player Pack\{app}\Any DVD Converter Pro 3.7.1.0\*"; DestDir: "{app}\Any DVD Converter Pro 3.7.1.0"; MinVersion: 4.1,4.0; Components: Any_DVD_Converter; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{userappdata}\Any DVD Converter Professional\profiles_v2.xml"; DestDir: "{userappdata}\Any DVD Converter Professional"; Components: Any_DVD_Converter; Flags: ignoreversion

[Registry]
Any FLV Player
Root: HKCR; SubKey: Applications\FlvPlayer.exe\shell\open\command; ValueType: string; ValueName: ; ValueData: """C:\Program Files\Any FLV Player Pack\Any FLV Player 1.1.3.1\FlvPlayer.exe"" ""%1"""; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv; ValueType: string; ValueName: Application; ValueData: FlvPlayer.exe; Components: Any_FLV_Player; Tasks: fileassoc
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv\OpenWithList; ValueType: string; ValueName: a; ValueData: FlvPlayer.exe; Components: Any_FLV_Player; Tasks: fileassoc
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv\OpenWithProgids; ValueType: string; ValueName: flv_auto_file; ValueData: hex(0):; Components: Any_FLV_Player; Tasks: fileassoc
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv\OpenWithProgids; ValueType: string; ValueName: Winamp.File.FLV; ValueData: hex(0):; Components: Any_FLV_Player; Tasks: fileassoc
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv\OpenWithProgids; ValueType: string; ValueName: SWF.max.flv; ValueData: hex(0):; Components: Any_FLV_Player; Tasks: fileassoc
Root: HKCU; SubKey: Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.flv\OpenWithProgids; ValueType: string; ValueName: Flash.VideoFile; ValueData: hex(0):; Components: Any_FLV_Player; Tasks: fileassoc
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: AutoPlay; ValueData: $00000001; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: AutoRepeat; ValueData: $00000001; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: ShowTitle; ValueData: $00000001; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: ShowTime; ValueData: $00000001; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: nControlPanelPosition; ValueData: $00000000; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: nControlPanelDisplay; ValueData: $00000001; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorControlPanel; ValueData: $00141414; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorButton; ValueData: $002525da; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorTime1; ValueData: $00ffffff; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorSlide; ValueData: $00f0f0f0; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorBufferSlide; ValueData: $00000000; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: colorBKSlide; ValueData: $00333333; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: CopyVideoFile; ValueData: $00000001; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: nBufferTime; ValueData: $00000005; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: nControlBarStyle; ValueData: $00000000; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: string; ValueName: language; ValueData: auto; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: string; ValueName: languageIni; ValueData: lang_rus.ini; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: languageAuto; ValueData: $00000000; Components: Any_FLV_Player
Root: HKCU; SubKey: Software\Any Flv Player; ValueType: dword; ValueName: nSizeRatio; ValueData: $00000001; Components: Any_FLV_Player
Any Video Converter Professional
Root: HKCU; Subkey: "Software\Any Video Converter Professional"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Any Video Converter Professional\Setting\Output"; ValueName: "UseTitleAsFileName"; ValueType: Dword; ValueData: "$1"; Components: Any_Video_Converter
Root: HKCU; Subkey: "Software\Any Video Converter Professional\Setting\Output"; ValueName: "Video Aspect"; ValueType: String; ValueData: "4/3"; Components: Any_Video_Converter
Root: HKCU; Subkey: "Software\Any Video Converter Professional\Setting\Output"; ValueName: "RetryTimes"; ValueType: Dword; ValueData: "$5"; Components: Any_Video_Converter
Any DVD Converter Professional
Root: HKCU; Subkey: "Software\Any DVD Converter Professional"; Flags: uninsdeletekey
Root: HKCU; Subkey: "Software\Any DVD Converter Professional\Setting\Output"; ValueName: "UseTitleAsFileName"; ValueType: Dword; ValueData: "$1"; Components: Any_DVD_Converter
Root: HKCU; Subkey: "Software\Any DVD Converter Professional\Setting\Output"; ValueName: "RetryTimes"; ValueType: Dword; ValueData: "$5"; Components: Any_DVD_Converter

[Run]
;Any FLV Player
;Filename: {app}\Any FLV Player 1.1.3.1\FlvPlayer.exe; Description: Запустить Any Flv Player; Flags: nowait postinstall skipifsilent unchecked
;Any Video Converter Professional
;Filename: {app}\Any Video Converter Pro 2.7.1\VideoConvPro.exe; Description: Запустить Any Video Converter Pro; Flags: nowait postinstall skipifsilent unchecked

[Icons]
;Any FLV Player
Name: {group}\Any Flv Player; Filename: {app}\Any FLV Player 1.1.3.1\FlvPlayer.exe; Components: Any_FLV_Player
Name: {commondesktop}\Any Flv Player; Filename: {app}\Any FLV Player 1.1.3.1\FlvPlayer.exe; Components: Any_FLV_Player; Tasks: AnyFlvPlayer
;Any Video Converter Professional
Name: {group}\Any Video Converter Pro; Filename: {app}\Any Video Converter Pro 2.7.1\VideoConvPro.exe; Components: Any_Video_Converter
Name: {commondesktop}\Any Video Converter Pro; Filename: {app}\Any Video Converter Pro 2.7.1\VideoConvPro.exe; Components: Any_Video_Converter; Tasks: AnyVideoConverter
;Any DVD Converter Professional
Name: {group}\Any DVD Converter Pro; Filename: {app}\Any DVD Converter Pro 3.7.1.0\DVDConvPro.exe; Components: Any_DVD_Converter
Name: {commondesktop}\Any DVD Converter Pro; Filename: {app}\Any DVD Converter Pro 3.7.1.0\DVDConvPro.exe; Components: Any_DVD_Converter; Tasks: AnyDVDConverter

[_Code]
var
  WelcomeLabel1,WelcomeLabel2,FinishedHeadingLabel,Any_FLV_Player_Label,Any_Video_Converter_Label,
  Any_DVD_Converter_Label,FinishedLabel,PageNameLabel,PageDescriptionLabel:TLabel;
  Any_FLV_Player,Any_Video_Converter,Any_DVD_Converter: TCheckBox;

procedure Any_FLV_Player_Label_OnClick(Sender: TObject);
begin
  if Any_FLV_Player.Checked = false then
  begin
    Any_FLV_Player.Checked := true;
  end else
    Any_FLV_Player.Checked := false;
end;

procedure Any_Video_Converter_Label_OnClick(Sender: TObject);
begin
  if Any_Video_Converter.Checked = false then
  begin
    Any_Video_Converter.Checked := true;
  end else
    Any_Video_Converter.Checked := false;
end;

procedure Any_DVD_Converter_Label_OnClick(Sender: TObject);
begin
  if Any_DVD_Converter.Checked = false then
  begin
    Any_DVD_Converter.Checked := true;
  end else
    Any_DVD_Converter.Checked := false;
end;

// функция для запуска программы если отмечен чебокс
procedure CurStepChanged(CurStep: TSetupStep);
var
  ErrorCode: Integer;
begin
  if CurStep = ssDone then
  begin
    if Any_FLV_Player.Checked then
       Exec(ExpandConstant('{app}\Any FLV Player 1.1.3.1\FlvPlayer.exe'), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);

    if Any_Video_Converter.Checked then
       Exec(ExpandConstant('{app}\Any_Video_Converter\Any_Video_Converter.exe'), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);

    if Any_DVD_Converter.Checked then
       Exec(ExpandConstant('{app}\Any_DVD_Converter\Any_DVD_Converter.exe'), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
  end;
end;

procedure InitializeWizard();
begin
  WizardForm.WelcomeLabel1.Hide;
  WizardForm.WelcomeLabel2.Hide;
  WizardForm.PageNameLabel.Hide;
  WizardForm.PageDescriptionLabel.Hide;
  WizardForm.FinishedHeadingLabel.Hide;
  WizardForm.FinishedLabel.Hide;
  // не знаю почему, но Hide не действует. Поэтому просто уменьшил размер.
  WizardForm.RunList.Height := 0;
  WizardForm.RunList.Width := 0;

    WizardForm.WizardBitmapImage.Align:=true;
    WizardForm.WizardBitmapImage2.Align:=true;
    WizardForm.WizardSmallBitmapImage.Align:=true;

  WelcomeLabel1:=TLabel.Create(WizardForm);
  WelcomeLabel1.Left:=ScaleX(150);
  WelcomeLabel1.Top := ScaleY(22);
  WelcomeLabel1.Width := ScaleX(320);
  WelcomeLabel1.Height := ScaleY(75);
  WelcomeLabel1.AutoSize := False;
  WelcomeLabel1.WordWrap := True;
  WelcomeLabel1.Font.Color := clBlack;
  // здесь можно поиграть шрифтом.
  WelcomeLabel1.Font.Style := [fsBold];
  WelcomeLabel1.Font.Name:='Cambria';
  WelcomeLabel1.Font.Size := 14;
  WelcomeLabel1.Transparent := True;
  WelcomeLabel1.Parent := WizardForm.WelcomePage;

    WelcomeLabel2:=TLabel.Create(WizardForm);
    WelcomeLabel2.Left := ScaleX(150);
    WelcomeLabel2.Top := ScaleY(85);
    WelcomeLabel2.Width := ScaleX(320);
    WelcomeLabel2.Height := ScaleY(200);
    WelcomeLabel2.AutoSize := False;
    WelcomeLabel2.WordWrap := True;
    WelcomeLabel2.Font.Color := clBlack;
    WelcomeLabel2.Font.Size := 8;
    WelcomeLabel2.Transparent := True;
    WelcomeLabel2.Parent := WizardForm.WelcomePage;

  PageNameLabel := TLabel.Create(WizardForm);
  PageNameLabel.Left := ScaleX(35);
  PageNameLabel.Top := ScaleY(13);
  PageNameLabel.Width := ScaleX(300);
  PageNameLabel.Height := ScaleY(14);
  PageNameLabel.AutoSize := False;
  PageNameLabel.WordWrap := True;
  PageNameLabel.Font.Color := clBlack;
  PageNameLabel.Font.Style := [fsBold];
  PageNameLabel.Transparent := True;
  PageNameLabel.Parent := WizardForm.MainPanel;

    PageDescriptionLabel := TLabel.Create(WizardForm);
    PageDescriptionLabel.Left := ScaleX(35);
    PageDescriptionLabel.Top := ScaleY(30);
    PageDescriptionLabel.Width := ScaleX(400);
    PageDescriptionLabel.Height := ScaleY(30);
    PageDescriptionLabel.AutoSize := False;
    PageDescriptionLabel.WordWrap := True;
    PageDescriptionLabel.Font.Color := clBlack;
    PageDescriptionLabel.Transparent := True;
    PageDescriptionLabel.Parent := WizardForm.MainPanel;

  FinishedHeadingLabel:=TLabel.Create(WizardForm);
  FinishedHeadingLabel.Left := ScaleX(150);
  FinishedHeadingLabel.Top := ScaleY(22);
  FinishedHeadingLabel.Width := ScaleX(320);
  FinishedHeadingLabel.Height := ScaleY(75);
  FinishedHeadingLabel.AutoSize := False;
  FinishedHeadingLabel.WordWrap := True;
  FinishedHeadingLabel.Font.Color := clBlack;
  // здесь можно поиграть шрифтом.
  FinishedHeadingLabel.Font.Style := [fsBold];
  FinishedHeadingLabel.Font.Name:='Cambria';
  FinishedHeadingLabel.Font.Size := 14;
  FinishedHeadingLabel.Transparent := True;
  FinishedHeadingLabel.Parent := WizardForm.FinishedPage;

    FinishedLabel:=TLabel.Create(WizardForm);
    FinishedLabel.Left := ScaleX(150);
    FinishedLabel.Top := ScaleY(85);
    FinishedLabel.Width := ScaleX(320);
    FinishedLabel.Height := ScaleY(200);
    FinishedLabel.AutoSize := False;
    FinishedLabel.WordWrap := True;
    FinishedLabel.Font.Color := clBlack;
    FinishedLabel.Font.Size := 8;
    FinishedLabel.Transparent := True;
    FinishedLabel.Parent := WizardForm.FinishedPage;

  Any_FLV_Player := TCheckBox.Create(WizardForm);
  Any_FLV_Player.Parent := WizardForm.FinishedPage;
  Any_FLV_Player.Left := ScaleX(150);
  Any_FLV_Player.Top := ScaleY(185);
  Any_FLV_Player.Width := ScaleX(14);
  Any_FLV_Player.Height := ScaleX(14);
  // Any_FLV_Player.Checked := true; // чтоб чебокс был отмечен, раскоментируй строку

    Any_FLV_Player_Label :=TLabel.Create(WizardForm);
    Any_FLV_Player_Label.Left := ScaleX(170);
    Any_FLV_Player_Label.Top := ScaleY(185);
    Any_FLV_Player_Label.Width := ScaleX(300);
    Any_FLV_Player_Label.Height := ScaleY(20);
    Any_FLV_Player_Label.AutoSize := False;
    Any_FLV_Player_Label.WordWrap := True;
    Any_FLV_Player_Label.Font.Color := clBlack;
    Any_FLV_Player_Label.Font.Size := 8;
    Any_FLV_Player_Label.OnClick := @Any_FLV_Player_Label_OnClick;
    Any_FLV_Player_Label.Transparent := True;
    Any_FLV_Player_Label.Parent := WizardForm.FinishedPage;

  Any_Video_Converter := TCheckBox.Create(WizardForm);
  Any_Video_Converter.Parent := WizardForm.FinishedPage;
  Any_Video_Converter.Left := ScaleX(150);
  Any_Video_Converter.Top := ScaleY(205);
  Any_Video_Converter.Width := ScaleX(14);
  Any_Video_Converter.Height := ScaleX(14);
  // Any_Video_Converter.Checked := true; // чтоб чебокс был отмечен, раскоментируй строку

    Any_Video_Converter_Label :=TLabel.Create(WizardForm);
    Any_Video_Converter_Label.Left := ScaleX(170);
    Any_Video_Converter_Label.Top := ScaleY(205);
    Any_Video_Converter_Label.Width := ScaleX(300);
    Any_Video_Converter_Label.Height := ScaleY(20);
    Any_Video_Converter_Label.AutoSize := False;
    Any_Video_Converter_Label.WordWrap := True;
    Any_Video_Converter_Label.Font.Color := clBlack;
    Any_Video_Converter_Label.Font.Size := 8;
    Any_Video_Converter_Label.OnClick := @Any_Video_Converter_Label_OnClick;
    Any_Video_Converter_Label.Transparent := True;
    Any_Video_Converter_Label.Parent := WizardForm.FinishedPage;

  Any_DVD_Converter := TCheckBox.Create(WizardForm);
  Any_DVD_Converter.Parent := WizardForm.FinishedPage;
  Any_DVD_Converter.Left := ScaleX(150);
  Any_DVD_Converter.Top := ScaleY(225);
  Any_DVD_Converter.Width := ScaleX(14);
  Any_DVD_Converter.Height := ScaleX(14);
  // Any_DVD_Converter.Checked := true; // чтоб чебокс был отмечен, раскоментируй строку

    Any_DVD_Converter_Label :=TLabel.Create(WizardForm);
    Any_DVD_Converter_Label.Left := ScaleX(170);
    Any_DVD_Converter_Label.Top := ScaleY(225);
    Any_DVD_Converter_Label.Width := ScaleX(300);
    Any_DVD_Converter_Label.Height := ScaleY(20);
    Any_DVD_Converter_Label.AutoSize := False;
    Any_DVD_Converter_Label.WordWrap := True;
    Any_DVD_Converter_Label.Font.Color := clBlack;
    Any_DVD_Converter_Label.Font.Size := 8;
    Any_DVD_Converter_Label.OnClick := @Any_DVD_Converter_Label_OnClick;
    Any_DVD_Converter_Label.Transparent := True;
    Any_DVD_Converter_Label.Parent := WizardForm.FinishedPage;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  WelcomeLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
  WelcomeLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
  PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
  PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
  FinishedHeadingLabel.Caption := WizardForm.FinishedHeadingLabel.Caption;
  FinishedLabel.Caption := WizardForm.FinishedLabel.Caption;
  // здесь придётся вручную вводить требуемый текст
  Any_FLV_Player_Label.Caption := 'Запустить Any Flv Player';
  Any_Video_Converter_Label.Caption := 'Запустить Any Video Converter Professional';
  Any_DVD_Converter_Label.Caption := 'Запустить Any DVD Converter Professional';
end;

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

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 18:29, 26-02-2009 | #468


Аватара для tem000

Пользователь


Сообщения: 96
Благодарности: 7

Профиль | Отправить PM | Цитировать


Serega_, Спасибо, работает!!!

Отправлено: 19:50, 26-02-2009 | #469


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


de_MAX, смещение прогрессбара вниз и показ слайд-шоу в окне мастера
читать дальше »
Код: Выделить весь код
#define TIME_FOR_VIEW 1

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.

[Files]
Source: 1.bmp; Flags: dontcopy
Source: 2.bmp; Flags: dontcopy
Source: 3.bmp; Flags: dontcopy
Source: InnoCallback.dll; Flags: dontcopy
Source: compiler:Examples\MyProg.exe; DestDir: {app}

Code]
type
  TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);

var
  WelcomeLabel1,WelcomeLabel2,FinishedHeadingLabel,RunLabel,
  FinishedLabel,PageNameLabel,PageDescriptionLabel:TLabel;
  RunMyProg: TCheckBox;
  TimerID: LongWord;
  currTime: Integer;
  SplashImage: TBitmapImage;

function WrapTimerProc(callback:TProc; paramcount:integer):longword;
  external 'wrapcallback@files:InnoCallback.dll stdcall';

function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord;
  external 'SetTimer@user32.dll stdcall';

function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord;
  external 'KillTimer@user32.dll stdcall';

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
   currTime := currTime + 1;
   case currTime of
   1*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\2.bmp')) end;
   2*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\3.bmp')) end;
   end;
   if CurrTime = 2*{#TIME_FOR_VIEW} then CurrTime := -1;
end;

procedure RLabelOnClick(Sender: TObject);
begin
  if RunMyProg.Checked=false then
  begin
    RunMyProg.Checked := true;
  end else
    RunMyProg.Checked := false;
end;

// функция для запуска программы если отмечен чебокс
procedure CurStepChanged(CurStep: TSetupStep);
var
  ErrorCode: Integer;
begin
if CurStep = ssDone then
  begin
    if RunMyProg.Checked then
    Exec(ExpandConstant('{app}\MyProg.exe'), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
  end;
end;

procedure InitializeWizard();
begin
  ExtractTemporaryFile('1.bmp')
  ExtractTemporaryFile('2.bmp')
  ExtractTemporaryFile('3.bmp')

  currTime := 0;

      WizardForm.WelcomeLabel1.Hide;
      WizardForm.WelcomeLabel2.Hide;
      WizardForm.PageNameLabel.Hide;
      WizardForm.PageDescriptionLabel.Hide;
      WizardForm.FinishedHeadingLabel.Hide;
      WizardForm.FinishedLabel.Hide;
    // низнаю почему, но Hide не действует. Поэтому просто уменьшил размер
      WizardForm.RunList.Height := 0;
      WizardForm.RunList.Width := 0;
      WizardForm.FilenameLabel.Hide;

  WizardForm.StatusLabel.Parent := WizardForm;
  WizardForm.StatusLabel.Top := ScaleY(315);
  WizardForm.StatusLabel.Left := ScaleX(10);
  WizardForm.StatusLabel.Width := ScaleX(200);
  WizardForm.StatusLabel.Hide;

      WizardForm.ProgressGauge.Parent := WizardForm;
      WizardForm.ProgressGauge.Top := ScaleY(330);
      WizardForm.ProgressGauge.Left := ScaleX(10);
      WizardForm.ProgressGauge.Width := ScaleX(380);
      WizardForm.ProgressGauge.Height := ScaleX(18);
      WizardForm.ProgressGauge.Hide;

  SplashImage := TBitmapImage.Create(WizardForm);
  SplashImage.Top := 0;
  SplashImage.Left := 0;
  SplashImage.Width := WizardForm.MainPanel.Width;
  SplashImage.Height := WizardForm.Bevel.Top;
  SplashImage.Parent := WizardForm.InnerPage;
  SplashImage.Stretch := True;
  SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\1.bmp'));
  SplashImage.Hide;

      WizardForm.WizardBitmapImage.Align:=true;
      WizardForm.WizardBitmapImage2.Align:=true;
      WizardForm.WizardSmallBitmapImage.Align:=true;

  WelcomeLabel1:=TLabel.Create(WizardForm);
  WelcomeLabel1.Left:=ScaleX(150);
  WelcomeLabel1.Top := ScaleY(15);
  WelcomeLabel1.Width := ScaleX(320);
  WelcomeLabel1.Height := ScaleY(75);
  WelcomeLabel1.AutoSize := False;
  WelcomeLabel1.WordWrap := True;
  WelcomeLabel1.Font.Color := clBlack;
// здесь можно поиграть шрифтом
//  WelcomeLabel1.Font.Style := [fsBold];
//  WelcomeLabel1.Font.Name:='MS Sans Serif';
  WelcomeLabel1.Font.Size := 14;
  WelcomeLabel1.Transparent := True;
  WelcomeLabel1.Parent := WizardForm.WelcomePage;

      WelcomeLabel2:=TLabel.Create(WizardForm);
      WelcomeLabel2.Left := ScaleX(150);
      WelcomeLabel2.Top := ScaleY(90);
      WelcomeLabel2.Width := ScaleX(320);
      WelcomeLabel2.Height := ScaleY(200);
      WelcomeLabel2.AutoSize := False;
      WelcomeLabel2.WordWrap := True;
      WelcomeLabel2.Font.Color := clBlack;
      WelcomeLabel2.Font.Size := 8;
      WelcomeLabel2.Transparent := True;
      WelcomeLabel2.Parent := WizardForm.WelcomePage;

  PageNameLabel := TLabel.Create(WizardForm);
  PageNameLabel.Left := ScaleX(25);
  PageNameLabel.Top := ScaleY(10);
  PageNameLabel.Width := ScaleX(300);
  PageNameLabel.Height := ScaleY(14);
  PageNameLabel.AutoSize := False;
  PageNameLabel.WordWrap := True;
  PageNameLabel.Font.Color := clBlack;
  PageNameLabel.Font.Style := [fsBold];
  PageNameLabel.Transparent := True;
  PageNameLabel.Parent := WizardForm.MainPanel;

      PageDescriptionLabel := TLabel.Create(WizardForm);
      PageDescriptionLabel.Left := ScaleX(40);
      PageDescriptionLabel.Top := ScaleY(25);
      PageDescriptionLabel.Width := ScaleX(475);
      PageDescriptionLabel.Height := ScaleY(30);
      PageDescriptionLabel.AutoSize := False;
      PageDescriptionLabel.WordWrap := True;
      PageDescriptionLabel.Font.Color := clBlack;
      PageDescriptionLabel.Transparent := True;
      PageDescriptionLabel.Parent := WizardForm.MainPanel;

  FinishedHeadingLabel:=TLabel.Create(WizardForm);
  FinishedHeadingLabel.Left := ScaleX(150);
  FinishedHeadingLabel.Top := ScaleY(15);
  FinishedHeadingLabel.Width := ScaleX(320);
  FinishedHeadingLabel.Height := ScaleY(75);
  FinishedHeadingLabel.AutoSize := False;
  FinishedHeadingLabel.WordWrap := True;
  FinishedHeadingLabel.Font.Color := clBlack;
// здесь тоже можно поиграть шрифтом
//  FinishedHeadingLabel.Font.Style := [fsBold];
//  FinishedHeadingLabel.Font.Name:='MS Sans Serif';
  FinishedHeadingLabel.Font.Size := 14;
  FinishedHeadingLabel.Transparent := True;
  FinishedHeadingLabel.Parent := WizardForm.FinishedPage;

      FinishedLabel:=TLabel.Create(WizardForm);
      FinishedLabel.Left := ScaleX(150);
      FinishedLabel.Top := ScaleY(90);
      FinishedLabel.Width := ScaleX(320);
      FinishedLabel.Height := ScaleY(200);
      FinishedLabel.AutoSize := False;
      FinishedLabel.WordWrap := True;
      FinishedLabel.Font.Color := clBlack;
      FinishedLabel.Font.Size := 8;
      FinishedLabel.Transparent := True;
      FinishedLabel.Parent := WizardForm.FinishedPage;

  RunMyProg := TCheckBox.Create(WizardForm);
  RunMyProg.Parent := WizardForm.FinishedPage;
  RunMyProg.Left := ScaleX(150);
  RunMyProg.Top := ScaleY(152);
  RunMyProg.Width := ScaleX(14);
  RunMyProg.Height := ScaleX(14);
//  RunMyProg.Checked := true; // чтоб чебокс был отмечен, раскоментируй строку

      RunLabel:=TLabel.Create(WizardForm);
      RunLabel.Left := ScaleX(170);
      RunLabel.Top := ScaleY(150);
      RunLabel.Width := ScaleX(200);
      RunLabel.Height := ScaleY(20);
      RunLabel.AutoSize := False;
      RunLabel.WordWrap := True;
      RunLabel.Font.Color := clBlack;
      RunLabel.Font.Size := 10;
      RunLabel.OnClick := @RLabelOnClick;
      RunLabel.Transparent := True;
      RunLabel.Parent := WizardForm.FinishedPage;
end;

procedure CurPageChanged(CurPageID: Integer);
var
  pfunc: LongWord;

begin
  WelcomeLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
  WelcomeLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
  PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
  PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
  FinishedHeadingLabel.Caption := WizardForm.FinishedHeadingLabel.Caption;
  FinishedLabel.Caption := WizardForm.FinishedLabel.Caption;
// здесь придётся вручную вводить требуемый текст
  RunLabel.Caption := 'Запустить программу';

  if (CurPageID = wpInstalling) then
    begin
      pfunc := WrapTimerProc(@OnTimer, 4);
      TimerID := SetTimer(0, 0, 1000, pfunc);

      WizardForm.InnerNotebook.Hide;
      WizardForm.Bevel1.Hide;
      WizardForm.MainPanel.Hide;
      WizardForm.PageNameLabel.Hide;
      WizardForm.PageDescriptionLabel.Hide;

      WizardForm.ProgressGauge.Show;
      WizardForm.StatusLabel.Show;
      SplashImage.Show;
    end
  else
    begin
      WizardForm.ProgressGauge.Hide;
      WizardForm.StatusLabel.Hide;
      SplashImage.Hide;

    if (CurPageID > wpInstalling) and (CurPageID < wpFinished) then
    begin
      WizardForm.InnerNotebook.Show;
      WizardForm.Bevel1.Show;
      WizardForm.MainPanel.Show;
      WizardForm.PageNameLabel.Show;
      WizardForm.PageDescriptionLabel.Show;
    end;
  end;
end;

procedure DeinitializeSetup();
begin
  KillTimer(0, TimerID);
end;

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:52, 01-03-2009 | #470



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив] Inno Setup .:[все вопросы]:.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Inno Setup. Прочие вопросы El Sanchez Автоматическая установка приложений 653 09-01-2023 20:13
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
[Архив] Твики реестра .: [все вопросы] :. Vadikan Автоматическая установка Windows 2000/XP/2003 1431 26-01-2008 08:51
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход