У меня как раз два unins000.exe и unins001.exe. Сейчас попробую твой способ.Farser21,
Добавь просто UninstallFilesDir={app}\res_mods\*
http://rghost.ru/52949567
У тебя получается один unins000.exe и на компоненты и на саму игру. Поэтому он и удаляет всю папку целиком.
[Setup]
AppName=My install
AppVerName=My install
DefaultDirName={pf}\My install
[Files]
Source: 0XTHFnus.ttf; DestDir: {tmp}; Flags: dontcopy;
[Code_]
procedure InitializeWizard();
begin
ExtractTemporaryFile('0XTHFnus.ttf');
FileCopy(ExpandConstant('{tmp}\0XTHFnus.ttf'), ExpandConstant('{fonts}\0XTHFnus.ttf'), True);
WizardForm.Font.Name := 'Monotype Corsiva';
end;
[Setup_]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Files_]
Source : IsPicture2.dll; Flags : dontcopy;
Source: fon.avi; Flags: dontcopy
Source: fon.bmp; Flags: dontcopy
[code_]
//----------------------------------------------------------------------------------\\
const // жирность шрифта
FW_DONTCARE = 0;
FW_THIN = 100;
FW_ULTRALIGHT = 200;
FW_LIGHT = 300;
FW_NORMAL = 400;
FW_MEDIUM = 500;
FW_DEMIBOLD = 600;
FW_BOLD = 700;
FW_ULTRABOLD = 800;
FW_BLACK = 900;
procedure IsPicInit(Handle : HWND);
external 'IsPicInit@files:IsPicture2.dll stdcall delayload';
// начало работы
procedure IsPicAddImg(fName : AnsiString);
external 'IsPicAddImg@files:IsPicture2.dll stdcall delayload';
// изображение на заднем фоне
procedure IsPicAddVideo(fName : AnsiString; l, t, w, h : Integer; test : Boolean);
external 'IsPicAddVideo@files:IsPicture2.dll stdcall delayload';
// видео на заднем фоне
// fName - имя файла
// l, t, w, h - положение и размер видео
// test показ сообщений об ошибках: True - с сообщениями, false - без сообщений
function IsPicReFont(OldFont: HWND; Size, Weight : Integer; Italic : Boolean; Name : AnsiString) : HWND;
external 'IsPicReFont@files:IsPicture2.dll stdcall delayload';
// подмена шрифта для борьбы с артефактами сглаживания
// Size - размер шрифта
// Weight - жирность
// Italic - наклонность
// Name -имя шрифта
procedure IsPicStopVideo;
external 'IsPicStopVideo@files:IsPicture2.dll stdcall delayload';
// остановка воспроизведения видео - после этой команды
// видео будет полностью выгружено
function IsPicChecVideo : Boolean;
external 'IsPicChecVideo@files:IsPicture2.dll stdcall delayload';
// проверка успешности загрузки видео
function IsPicChecSound : Boolean;
external 'IsPicChecSound@files:IsPicture2.dll stdcall delayload';
// проверка успешности загрузки звука
procedure IsPicPauseVideo(play : Boolean);
external 'IsPicPauseVideo@files:IsPicture2.dll stdcall delayload';
// пауза видео
// play -
// если значение True, то продолжаем воспроизводить
// если значение False, то ставим на паузу
procedure IsPicSetVolume(volume : Integer);
external 'IsPicSetVolume@files:IsPicture2.dll stdcall delayload';
// громкость видео от -10000 до 0.
// -10000 - минимальное значение
// 0 - максимальное значение
procedure IsPicDeInit;
external 'IsPicDeInit@files:IsPicture2.dll stdcall delayload';
// не забываем вызвать в DeinitializeSetup
//----------------------------------------------------------------------------------\\
procedure RunStop(Sender: TObject);
begin
IsPicPauseVideo(TNewCheckBox(Sender).Checked);
end;
procedure SetVolume(Sender: TObject);
begin
IsPicSetVolume(TTrackBar(Sender).Position);
end;
procedure InitializeWizard();
var
fName : AnsiString; // переменная для своего шрифта
begin
ExtractTemporaryFile('fon.bmp');
ExtractTemporaryFile('fon.avi');
with WizardForm do
begin
WizardBitmapImage.Free;
WizardBitmapImage2.Free;
//----------------------------------------------------------------------------------\\
// подменяем шрифты
fName := 'Trebuchet MS'; // задаем желаемый шрифт
Font.Handle := IsPicReFont(Font.Handle, Font.Size, FW_DEMIBOLD, False, fName);
WelcomeLabel1.Font.Handle := IsPicReFont(WelcomeLabel1.Font.Handle, WelcomeLabel1.Font.Size, FW_BOLD, False, fName);
PageNameLabel.Font.Handle := IsPicReFont(PageNameLabel.Font.Handle, PageNameLabel.Font.Size, FW_BOLD, False, fName);
FinishedHeadingLabel.Font.Handle := IsPicReFont(FinishedHeadingLabel.Font.Handle, FinishedHeadingLabel.Font.Size, FW_BOLD, False, fName);
//----------------------------------------------------------------------------------\\
//----------------------------------------------------------------------------------\\
// цвет прозрачности - $000008. Указываем его для элементов,которые должны быть прозрачными
Color := $000008;
WelcomePage.Color := $000008;
InnerPage.Color := $000008;
FinishedPage.Color := $000008;
MainPanel.Color := $000008;
DirEdit.Color := $000008;
ReadyMemo.Color := $000008;
//----------------------------------------------------------------------------------\\
Font.Color := clYellow;
// запускам
IsPicInit(Handle);
end;
//----------------------------------------------------------------------------------\\
// добавляем изображение на задний фон
IsPicAddImg(ExpandConstant('{tmp}\fon.bmp'));
// добавляем видео на задний фон
IsPicAddVideo(ExpandConstant('{tmp}\fon.avi'), 0, 0, 664, 486, True); // При окончательной компиляции меняем True на False
//----------------------------------------------------------------------------------\\
//----------------------------------------------------------------------------------\\
// проверяем успешность загрузки видео
if IsPicChecVideo then
begin
// чекбокс - Пуск - Пауза
with TNewCheckBox.Create(WizardForm) do
begin
Parent := WizardForm;
SetBounds(ScaleX(24), ScaleY(330), ScaleX(90), ScaleY(14));
Caption := 'Пуск - Пауза';
Checked := true;
OnClick := @RunStop;
end;
// трекбар - Громкость
if IsPicChecSound then
with TTrackBar.Create(WizardForm) do
begin
Parent := WizardForm;
SetBounds(ScaleX(138), ScaleY(326), ScaleX(100), ScaleY(23));
Min := -5000;
Max := 0;
Position := -3000;
TickMarks := tmBoth;
TickStyle := tsNone;
OnChange := @SetVolume;
end;
IsPicSetVolume(-3000);
end;
//----------------------------------------------------------------------------------\\
end;
procedure DeinitializeSetup();
begin
// завершаем работу
IsPicDeInit;
end;
Не получается,к сожалению выдаёт ошибку:ilzok17, Так:
Код:if CurPageId = wpInstalling then // Страница установки begin IsPicAddVideo(ExpandConstant('{tmp}\fon.avi'), 0, 0, 664, 486, True); // При окончательной компиляции меняем True на False //проверяем успешность загрузки видео if IsPicChecVideo then end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageId = wpInstalling then // Страница установки
begin
IsPicAddVideo(ExpandConstant('{tmp}\fon.avi'), 0, 0, 664, 486, True); // При окончательной компиляции меняем True на False
//проверяем успешность загрузки видео
if IsPicChecVideo then
end;
end;
Вот,это я даже не внедрённый в ISDone ,а просто отдельно модуль,если убрать эти строки: "procedure CurPageChanged(CurPageID: Integer);ilzok17, Скрипт покажи...
[Setup_]
SourceDir=.
OutputDir=.
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Files_]
Source : IsPicture2.dll; Flags : dontcopy;
Source: fon.avi; Flags: dontcopy
Source: fon.bmp; Flags: dontcopy
[code_]
//----------------------------------------------------------------------------------\\
const // жирность шрифта
FW_DONTCARE = 0;
FW_THIN = 100;
FW_ULTRALIGHT = 200;
FW_LIGHT = 300;
FW_NORMAL = 400;
FW_MEDIUM = 500;
FW_DEMIBOLD = 600;
FW_BOLD = 700;
FW_ULTRABOLD = 800;
FW_BLACK = 900;
procedure IsPicInit(Handle : HWND);
external 'IsPicInit@files:IsPicture2.dll stdcall delayload';
// начало работы
procedure IsPicAddImg(fName : AnsiString);
external 'IsPicAddImg@files:IsPicture2.dll stdcall delayload';
// изображение на заднем фоне
procedure IsPicAddVideo(fName : AnsiString; l, t, w, h : Integer; test : Boolean);
external 'IsPicAddVideo@files:IsPicture2.dll stdcall delayload';
// видео на заднем фоне
// fName - имя файла
// l, t, w, h - положение и размер видео
// test показ сообщений об ошибках: True - с сообщениями, false - без сообщений
function IsPicReFont(OldFont: HWND; Size, Weight : Integer; Italic : Boolean; Name : AnsiString) : HWND;
external 'IsPicReFont@files:IsPicture2.dll stdcall delayload';
// подмена шрифта для борьбы с артефактами сглаживания
// Size - размер шрифта
// Weight - жирность
// Italic - наклонность
// Name -имя шрифта
procedure IsPicStopVideo;
external 'IsPicStopVideo@files:IsPicture2.dll stdcall delayload';
// остановка воспроизведения видео - после этой команды
// видео будет полностью выгружено
function IsPicChecVideo : Boolean;
external 'IsPicChecVideo@files:IsPicture2.dll stdcall delayload';
// проверка успешности загрузки видео
function IsPicChecSound : Boolean;
external 'IsPicChecSound@files:IsPicture2.dll stdcall delayload';
// проверка успешности загрузки звука
procedure IsPicPauseVideo(play : Boolean);
external 'IsPicPauseVideo@files:IsPicture2.dll stdcall delayload';
// пауза видео
// play -
// если значение True, то продолжаем воспроизводить
// если значение False, то ставим на паузу
procedure IsPicSetVolume(volume : Integer);
external 'IsPicSetVolume@files:IsPicture2.dll stdcall delayload';
// громкость видео от -10000 до 0.
// -10000 - минимальное значение
// 0 - максимальное значение
procedure IsPicDeInit;
external 'IsPicDeInit@files:IsPicture2.dll stdcall delayload';
// не забываем вызвать в DeinitializeSetup
//----------------------------------------------------------------------------------\\
procedure RunStop(Sender: TObject);
begin
IsPicPauseVideo(TNewCheckBox(Sender).Checked);
end;
procedure SetVolume(Sender: TObject);
begin
IsPicSetVolume(TTrackBar(Sender).Position);
end;
procedure InitializeWizard();
var
fName : AnsiString; // переменная для своего шрифта
begin
ExtractTemporaryFile('fon.bmp');
ExtractTemporaryFile('fon.avi');
with WizardForm do
begin
WizardBitmapImage.Free;
WizardBitmapImage2.Free;
//----------------------------------------------------------------------------------\\
// подменяем шрифты
fName := 'Trebuchet MS'; // задаем желаемый шрифт
Font.Handle := IsPicReFont(Font.Handle, Font.Size, FW_DEMIBOLD, False, fName);
WelcomeLabel1.Font.Handle := IsPicReFont(WelcomeLabel1.Font.Handle, WelcomeLabel1.Font.Size, FW_BOLD, False, fName);
PageNameLabel.Font.Handle := IsPicReFont(PageNameLabel.Font.Handle, PageNameLabel.Font.Size, FW_BOLD, False, fName);
FinishedHeadingLabel.Font.Handle := IsPicReFont(FinishedHeadingLabel.Font.Handle, FinishedHeadingLabel.Font.Size, FW_BOLD, False, fName);
//----------------------------------------------------------------------------------\\
//----------------------------------------------------------------------------------\\
// цвет прозрачности - $000008. Указываем его для элементов,которые должны быть прозрачными
Color := $000008;
WelcomePage.Color := $000008;
InnerPage.Color := $000008;
FinishedPage.Color := $000008;
MainPanel.Color := $000008;
DirEdit.Color := $000008;
ReadyMemo.Color := $000008;
//----------------------------------------------------------------------------------\\
Font.Color := clYellow;
// запускам
IsPicInit(Handle);
end;
//----------------------------------------------------------------------------------\\
// добавляем изображение на задний фон
IsPicAddImg(ExpandConstant('{tmp}\fon.bmp'));
// добавляем видео на задний фон
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageId = wpInstalling then installingPage;
begin
IsPicAddVideo(ExpandConstant('{tmp}\fon.avi'), 0, 0, 664, 486, True); // При окончательной компиляции меняем True на False
//проверяем успешность загрузки видео
if IsPicChecVideo then
end;
end;
begin
// чекбокс - Пуск - Пауза
with TNewCheckBox.Create(WizardForm) do
begin
Parent := WizardForm;
SetBounds(ScaleX(24), ScaleY(330), ScaleX(90), ScaleY(14));
Caption := 'Пуск - Пауза';
Checked := true;
OnClick := @RunStop;
end;
// трекбар - Громкость
if IsPicChecSound then
with TTrackBar.Create(WizardForm) do
begin
Parent := WizardForm;
SetBounds(ScaleX(138), ScaleY(326), ScaleX(100), ScaleY(23));
Min := -5000;
Max := 0;
Position := -3000;
TickMarks := tmBoth;
TickStyle := tsNone;
OnChange := @SetVolume;
end;
IsPicSetVolume(-3000);
end;
//----------------------------------------------------------------------------------\\
end;
procedure DeinitializeSetup();
begin
// завершаем работу
IsPicDeInit;
end;
//----------------------------------------------------------------------------------\\
const // жирность шрифта
FW_DONTCARE = 0;
FW_THIN = 100;
FW_ULTRALIGHT = 200;
FW_LIGHT = 300;
FW_NORMAL = 400;
FW_MEDIUM = 500;
FW_DEMIBOLD = 600;
FW_BOLD = 700;
FW_ULTRABOLD = 800;
FW_BLACK = 900;
procedure IsPicInit(Handle : HWND);
external 'IsPicInit@files:IsPicture2.dll stdcall delayload';
// начало работы
procedure IsPicAddImg(fName : AnsiString);
external 'IsPicAddImg@files:IsPicture2.dll stdcall delayload';
// изображение на заднем фоне
procedure IsPicAddVideo(fName : AnsiString; l, t, w, h : Integer; test : Boolean);
external 'IsPicAddVideo@files:IsPicture2.dll stdcall delayload';
// видео на заднем фоне
// fName - имя файла
// l, t, w, h - положение и размер видео
// test показ сообщений об ошибках: True - с сообщениями, false - без сообщений
function IsPicReFont(OldFont: HWND; height, Weight : Integer; Italic : Boolean) : HWND;
external 'IsPicReFont@files:IsPicture2.dll stdcall delayload';
// подмена шрифта для борьбы с артефактами сглаживания
// height - Font.Height
// Weight - жирность
// Italic - наклонность
procedure IsPicStopVideo;
external 'IsPicStopVideo@files:IsPicture2.dll stdcall delayload';
// остановка воспроизведения видео - после этой команды
// видео будет полностью выгружено
function IsPicChecVideo : Boolean;
external 'IsPicChecVideo@files:IsPicture2.dll stdcall delayload';
// проверка успешности загрузки видео
function IsPicChecSound : Boolean;
external 'IsPicChecSound@files:IsPicture2.dll stdcall delayload';
// проверка успешности загрузки звука
procedure IsPicPauseVideo(play : Boolean);
external 'IsPicPauseVideo@files:IsPicture2.dll stdcall delayload';
// пауза видео
// play -
// если значение True, то продолжаем воспроизводить
// если значение False, то ставим на паузу
procedure IsPicSetVolume(volume : Integer);
external 'IsPicSetVolume@files:IsPicture2.dll stdcall delayload';
// громкость видео от -10000 до 0.
// -10000 - минимальное значение
// 0 - максимальное значение
procedure IsPicDeInit;
external 'IsPicDeInit@files:IsPicture2.dll stdcall delayload';
// не забываем вызвать в DeinitializeSetup
//----------------------------------------------------------------------------------\\
procedure RunStop(Sender: TObject);
begin
IsPicPauseVideo(TNewCheckBox(Sender).Checked);
end;
procedure SetVolume(Sender: TObject);
begin
IsPicSetVolume(TTrackBar(Sender).Position);
end;
procedure InitializeWizard();
begin
ExtractTemporaryFile('fon.bmp');
// ExtractTemporaryFile('fon.avi');
with WizardForm do
begin
WizardBitmapImage.Free;
WizardBitmapImage2.Free;
//----------------------------------------------------------------------------------\\
// подменяем шрифты
Font.Handle := IsPicReFont(Font.Handle, Font.Height, FW_DEMIBOLD, False);
WelcomeLabel1.Font.Handle := IsPicReFont(WelcomeLabel1.Font.Handle, WelcomeLabel1.Font.Height, FW_BOLD, False);
PageNameLabel.Font.Handle := IsPicReFont(PageNameLabel.Font.Handle, PageNameLabel.Font.Height, FW_BOLD, False);
FinishedHeadingLabel.Font.Handle := IsPicReFont(FinishedHeadingLabel.Font.Handle, FinishedHeadingLabel.Font.Height, FW_BOLD, False);
//----------------------------------------------------------------------------------\\
//----------------------------------------------------------------------------------\\
// цвет прозрачности - $000008. Указываем его для элементов,которые должны быть прозрачными
Color := $000008;
WelcomePage.Color := $000008;
InnerPage.Color := $000008;
FinishedPage.Color := $000008;
MainPanel.Color := $000008;
DirEdit.Color := $000008;
ReadyMemo.Color := $000008;
//----------------------------------------------------------------------------------\\
Font.Color := clYellow;
// запускам
IsPicInit(Handle);
end;
//----------------------------------------------------------------------------------\\
// добавляем изображение на задний фон
IsPicAddImg(ExpandConstant('{tmp}\fon.bmp'));
// добавляем видео на задний фон
// IsPicAddVideo('fon.avi', 137, 113, 360, 200, True); // При окончательной компиляции меняем True на False
//----------------------------------------------------------------------------------\\
//----------------------------------------------------------------------------------\\
// проверяем успешность загрузки видео
// if IsPicChecVideo then
begin
// чекбокс - Пуск - Пауза
with TNewCheckBox.Create(WizardForm) do
begin
Parent := WizardForm;
SetBounds(ScaleX(24), ScaleY(330), ScaleX(90), ScaleY(14));
Caption := 'Пуск - Пауза';
Checked := true;
OnClick := @RunStop;
end;
// трекбар - Громкость
if IsPicChecSound then
with TTrackBar.Create(WizardForm) do
begin
Parent := WizardForm;
SetBounds(ScaleX(138), ScaleY(326), ScaleX(100), ScaleY(23));
Min := -5000;
Max := 0;
Position := -3000;
TickMarks := tmBoth;
TickStyle := tsNone;
OnChange := @SetVolume;
end;
IsPicSetVolume(-3000);
end;
//----------------------------------------------------------------------------------\\
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageId = wpInstalling then // Страница установки
begin
IsPicAddVideo(ExpandConstant('{tmp}\fon.avi'), 0, 0, 664, 486, True); // При окончательной компиляции меняем True на False
//проверяем успешность загрузки видео
if IsPicChecVideo then
end;
if CurPageID = wpFinished then // Страница завершения установки
begin
// завершаем работу
IsPicDeInit;
end;
end;
procedure DeinitializeSetup();
begin
// завершаем работу
IsPicDeInit;
end;
Точно пробуй так:Может я не правильно задаю имя
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageId = wpWelcome then // страница приветствия
begin
end;
if CurPageId = wpSelectDir then // страница выбора папки назначения
begin
end;
if CurPageId = wpSelectComponents then // страница выбора компонентов
begin
end;
if CurPageId = wpSelectProgramGroup then // страница выбора программной группы
begin
end;
if CurPageId = wpSelectTasks then // страница выбора дополнительных задач
begin
end;
if CurPageId = wpReady then // страница Всё готово к установке
begin
end;
if CurPageId = wpInstalling then // страница установки, где отображается прогрессбар
begin
end;
if CurPageId = wpFinished then // страница завершения установки
begin
end;
end;