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

Компьютерный форум 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

 

Аватара для R.i.m.s.k.y.

Ветеран


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

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


Вопрос решен. Всем спасибо!
Решение

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 14:04, 03-07-2009 | #1071



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

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


Аватара для Tukash

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


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

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


Господа в чем проблема? стоит в инсталляторе 9bmp изображений он использует их как слайд шоу, но во время установки он показыват лишь 2 из них это 2 и 3 слайды помогите прошу вас, и как всегда надеюсь на вас!
[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;
   3*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\4.bmp')) end;
   4*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\5.bmp')) end;
   5*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\6.bmp')) end;
   6*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\7.bmp')) end;
   7*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\8.bmp')) end;
   8*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\9.bmp')) end;
  end;
   if CurrTime = 7*{#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

  end;
end;

procedure InitializeWizard();
begin
  ExtractTemporaryFile('1.bmp')
  ExtractTemporaryFile('2.bmp')
  ExtractTemporaryFile('3.bmp')
  ExtractTemporaryFile('4.bmp')
  ExtractTemporaryFile('5.bmp')
  ExtractTemporaryFile('6.bmp')
  ExtractTemporaryFile('7.bmp')
  ExtractTemporaryFile('8.bmp')
  ExtractTemporaryFile('9.bmp')

  currTime := 5;

      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(255);
  WelcomeLabel1.Top := ScaleY(15);
  WelcomeLabel1.Width := ScaleX(250);
  WelcomeLabel1.Height := ScaleY(95);
  WelcomeLabel1.AutoSize := False;
  WelcomeLabel1.WordWrap := true;
  WelcomeLabel1.Font.Color := clgreen;
// здесь можно поиграть шрифтом
  WelcomeLabel1.Font.Style := [fsBold];
  WelcomeLabel1.Font.Name:='MS Sans Serif';
  WelcomeLabel1.Font.Size := 13;
  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(275);
  FinishedHeadingLabel.Top := ScaleY(15);
  FinishedHeadingLabel.Width := ScaleX(250);
  FinishedHeadingLabel.Height := ScaleY(95);;
  FinishedHeadingLabel.AutoSize := False;
  FinishedHeadingLabel.WordWrap := True;
  FinishedHeadingLabel.Font.Color := clgreen;
// здесь тоже можно поиграть шрифтом
  FinishedHeadingLabel.Font.Style := [fsBold];
  FinishedHeadingLabel.Font.Name:='MS Sans Serif';
  FinishedHeadingLabel.Font.Size := 13;
  FinishedHeadingLabel.Transparent := True;
  FinishedHeadingLabel.Parent := WizardForm.FinishedPage;

      FinishedLabel:=TLabel.Create(WizardForm);
      FinishedLabel.Left := ScaleX(225);
      FinishedLabel.Top := ScaleY(15);
      FinishedLabel.Width := ScaleX(250);
      FinishedLabel.Height := ScaleY(95);
      FinishedLabel.AutoSize := False;
      FinishedLabel.WordWrap := True;
      FinishedLabel.Font.Color := clBlack;
      FinishedLabel.Font.Size := 13;
      FinishedLabel.Transparent := True;
      //FinishedLabel.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;
и еще, что надо исправить, что-бы не так быстро менялся слайд?

Последний раз редактировалось Tukash, 03-07-2009 в 21:16.


Отправлено: 18:17, 03-07-2009 | #1072


Аватара для Raf-9600

Старожил


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

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


1. Ктонить может сделать скрипт, чтоб в папке, которую выбрал юзер, для установки игры, проверялось наличие файлов "Install.exe" и "StarCraft.mpq", если хоть один файл найден, то никаких сообщений об ошибке выводиться не должно, если же не найдено ни одного, то выводилось сообщение "Install.exe не найден в папке назначения, скопируйте его с лицензионного диска StarCraft, в папку, для начала инсталляции". Но этот скрипт должен работать только если выбран компонент "Game\Lokal".
2. Возможно ли сделать чтоб в этом слайд-шоу, слайды менялись не по порядку, а рандомно?
читать дальше »
Код: Выделить весь код
#define TIME_FOR_VIEW 5

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

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Files]
Source: InnoCallback.dll; Flags: dontcopy noencryption nocompression solidbreak;
Source: *.bmp; Flags: dontcopy noencryption nocompression solidbreak;

[-code]
type
TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);

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';

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

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;


procedure InitializeWizard;
begin
ExtractTemporaryFile('Image_1.bmp');


currTime := 0;

WizardForm.ProgressGauge.Parent := WizardForm;
WizardForm.ProgressGauge.Top := WizardForm.CancelButton.Top + ScaleY(12);
WizardForm.ProgressGauge.Left := ScaleX(10);
WizardForm.ProgressGauge.Width := WizardForm.MainPanel.Width - ScaleX(20);
WizardForm.ProgressGauge.Height := 16;
WizardForm.ProgressGauge.Hide;

WizardForm.StatusLabel.Parent := WizardForm;
WizardForm.StatusLabel.Top := WizardForm.ProgressGauge.Top - ScaleY(18);
WizardForm.StatusLabel.Left := ScaleX(10);
WizardForm.StatusLabel.Width := ScaleX(397);
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;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
begin
WizardForm.StatusLabel.Caption := 'Распаковка слайдов ...';
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');
end;
end;

procedure CurPageChanged(CurPageID: Integer);
var
pfunc: LongWord;
begin
if (CurPageID = wpInstalling) then
begin
pfunc := WrapTimerProc(@OnTimer, 5);
TimerID := SetTimer(0, 0, 1000, pfunc);
WizardForm.PageNameLabel.Visible := False;
WizardForm.PageDescriptionLabel.Visible := False;
WizardForm.InnerNotebook.Hide;
WizardForm.Bevel1.Hide;
WizardForm.MainPanel.Hide;
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;
WizardForm.ProgressGauge.Show;
WizardForm.StatusLabel.Show;
SplashImage.Show;
WizardForm.CancelButton.Enabled := True;
WizardForm.CancelButton.Top := WizardForm.Bevel.Top + ScaleY(100);
end else
begin
WizardForm.ProgressGauge.Hide;
SplashImage.Hide;
WizardForm.FileNameLabel.Hide;
WizardForm.StatusLabel.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;
If CurPageID = wpFinished then
end;
end;

procedure DeInitializeSetup();
begin
KillTimer(0, TimerID);

Последний раз редактировалось Raf-9600, 03-07-2009 в 19:23.

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

Отправлено: 18:57, 03-07-2009 | #1073


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


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

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


МИШАНЧИК
Цитата МИШАНЧИК:
Можно как-то задать нахождение файлов деинсталятора и их имена, допустим чтоб не в основной папке, а в подпапке »
UninstallFilesDir={app}\uninstall
Цитата МИШАНЧИК:
и не unins000.dat, unins000.exe, а uninstall.dat и uninstall.exe? »
Думаю, без ковыряния исходников инно - нет.

Raf-9600
Цитата Raf-9600:
1. Ктонить может сделать скрипт, чтоб в папке, которую выбрал юзер, для установки игры, проверялось наличие файлов "Install.exe" и "StarCraft.mpq", если хоть один файл найден, то никаких сообщений об ошибке выводиться не должно, если же не найдено ни одного, то выводилось сообщение "Install.exe не найден в папке назначения, скопируйте его с лицензионного диска StarCraft, в папку, для начала инсталляции". Но этот скрипт должен работать только если выбран компонент "Game\Lokal". »
Поскольку страница с выбором компонентов идёт после страницы выбора папки установки, данную проверку, думаю целесообразнее делать на странице "Всё готово к установке" (wpReady),
проверяй …

Код: Выделить весь код
function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result := True;

  if CurPageID = wpReady then
  begin
    if IsComponentSelected('Game\Lokal') then
      if (FileSearch('Install.exe', ExpandConstant('{app}')) = '') then
        if (FileSearch('StarCraft.mpq', ExpandConstant('{app}')) = '') then
      begin
        SuppressibleMsgBox('"Install.exe не найден в папке назначения, скопируйте его с лицензионного диска StarCraft, в папку, для начала инсталляции".', mbCriticalError, MB_OK, MB_OK);
        Result := False;
      end else
        Result := True;
  end;
end;

Последний раз редактировалось serg aka lain, 03-07-2009 в 21:33.

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

Отправлено: 20:56, 03-07-2009 | #1074


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


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

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


Цитата МИШАНЧИК:
и не unins000.dat, unins000.exe, а uninstall.dat и uninstall.exe? »
Код: Выделить весь код
[_Code] 
procedure CurStepChanged(CurStep: TSetupStep); 
begin 
if CurStep = ssPostInstall then 
RenameFile(ExpandConstant('{app}\unins000.exe'), ExpandConstant('{app}\uninstall.exe')) 
RenameFile(ExpandConstant('{app}\unins000.dat'), ExpandConstant('{app}\uninstall.dat')) 
RegWriteStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\Моя Прога_is1','UninstallString', ExpandConstant('{app}\uninstall.exe')) 
RegWriteStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\Моя Прога_is1','QuietUninstallString', ExpandConstant('{app}\uninstall.exe /SILENT')) 
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:19, 03-07-2009 | #1075


Аватара для Tukash

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


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

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


прошу прощение за беспокойства, разобрался сам, надо было всего-то в #define TIME_FOR_VIEW 1 изменить на цифру больше!!!

Отправлено: 21:43, 03-07-2009 | #1076


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


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

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


BlackSelf
И чего толку от переименования?
При повторной установке реестр перезапишется как нужно, а в папке будет создан ещё один unins000.exe и unins000.dat.
Ну, если только целью этого действия является лишь бы получить эти uninstall любой ценой, то пойдёт.
ИМХО Думаю, спрашивали как заставить инсталлятор создавать деинсталлятор uninstall.exe изначально.

Отправлено: 21:51, 03-07-2009 | #1077


Ветеран


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

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


Цитата serg aka lain:
как заставить инсталлятор создавать деинсталлятор uninstall.exe изначально. »
От перемены мест слагаемых, сумма не меняется, т.е. в итоге будет получен требуемый результат...

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


Отправлено: 22:02, 03-07-2009 | #1078


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


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

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


Цитата Serega:
От перемены мест слагаемых, сумма не меняется, т.е. в итоге будет получен требуемый результат... »
согласен

Отправлено: 22:11, 03-07-2009 | #1079


Аватара для Raf-9600

Старожил


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

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


Цитата serg aka lain:
Поскольку страница с выбором компонентов идёт после страницы выбора папки установки, данную проверку, думаю целесообразнее делать на странице "Всё готово к установке" (wpReady),
проверяй … »
Сенкс! Полет отличный.

Отправлено: 23:21, 03-07-2009 | #1080



Компьютерный форум 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




 
Переход