Подскажите скрипт на удаление игры программы и т.п.
"Вы чё ребята, издеваетесь? Тему не судьба почитать?"
Антон_Мураткин@vk, Смотри
От некоторых проблем избавит
Код: Выделить всё
[UninstallDelete]
Name: {app}; Type: filesandordirsКод: Выделить всё
filesandordirs - Удаляет "Файлы и/или каталоги".
files - Удаляет "Файлы" в каталоге
dirifempty - Удаляет "Каталог в том случае, если он пустой"Код: Выделить всё
///////////////////Добавляем кнопки - Резервная копия////////////////////////////
begin
RedesignWizardForm;
MyTask:=TCheckBox.Create(WizardForm);
with MyTask do
begin
Parent:=WizardForm.SelectDirPage;
Caption:='Я хочу создать резервную копию';
Left:=ScaleX(0);
Top:=ScaleY(180);
Width:=ScaleX(400);
Height:=ScaleY(15);
TabOrder:=0;
Checked:=False;
///////////////////Добавляем кнопки - Резервная копия КОНЕЦ////////////////////////////Код: Выделить всё
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.
[Languages]
Name: default; MessagesFile: compiler:Default.isl
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Icons]
Name: {group}\My Program; Filename: {app}\MyProg.exe
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}
[Files]
Source:compiler:Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
[Messages]
russian.WizardSelectProgramGroup=Выбор папки установки
default.WizardSelectProgramGroup=Select Destination Location
russian.SelectStartMenuFolderDesc=В какую папку вы хотите установить [name]?
default.SelectStartMenuFolderDesc=Where should [name] be installed?
russian.WizardSelectDir=Выберите папку в меню «Пуск»
default.WizardSelectDir=Select Start Menu Folder
russian.SelectDirDesc=Где программа установки должна создать ярлыки?
default.SelectDirDesc=Where should Setup place the program's shortcuts?
[Code]
procedure InitializeWizard();
begin
WizardForm.SelectDirBitmapImage.Parent := WizardForm.SelectProgramGroupPage;
WizardForm.SelectDirLabel.Parent := WizardForm.SelectProgramGroupPage;
WizardForm.SelectDirBrowseLabel.Parent := WizardForm.SelectProgramGroupPage;
WizardForm.DirEdit.Parent := WizardForm.SelectProgramGroupPage;
WizardForm.DirBrowseButton.Parent := WizardForm.SelectProgramGroupPage;
WizardForm.DiskSpaceLabel.Parent := WizardForm.SelectProgramGroupPage;
WizardForm.SelectGroupBitmapImage.Parent := WizardForm.SelectDirPage;
WizardForm.SelectStartMenuFolderLabel.Parent := WizardForm.SelectDirPage;
WizardForm.SelectStartMenuFolderBrowseLabel.Parent := WizardForm.SelectDirPage;
WizardForm.GroupEdit.Parent := WizardForm.SelectDirPage;
WizardForm.GroupBrowseButton.Parent := WizardForm.SelectDirPage;
WizardForm.NoIconsCheck.Parent := WizardForm.SelectDirPage;
end;
Код: Выделить всё
Если оформлять копирование через секцию [files], то если я не ошибаюсь, то ее нужно связывать как-то с секцией [tasks]
и в этом случае в секции [code] нужно закомментировать те задачи, которые выполняет [tasks].
Опять же - я могу и ошибаться, так как я далеко не профи.
Если удаляешь файлы через секцию [unistalldelete] то файлы прописываются именно в этой секции,
выглядит это как-то так
Type: files; Name: "{app}\папка_0\папка_1\папка_2\file_1.mp3";
Type: files; Name: "{app}\папка_0\папка_1\file_1.mp3";
Type: files; Name: "{app}\папка_0\file_1.mp3";
проверка на наличие пустых папок осуществляется в [code]
с помощью RemoveDir
(то есть это даже не проверка, но удаляет папку, если она пустая и это иногда бывает необходимо)
(DelTree более "беспощадная")
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
// RemoveDir удалит только, если папка пустая
// Порядок удаление определен ниже:
// Папка 2
RemoveDir(ExpandConstant('{app}\папка_0\папка_1\папка_2'));
// папка 1
RemoveDir(ExpandConstant('{app}\папка_0\папка_1\'));
// Главная папка (папка_0)
RemoveDir(ExpandConstant('{app}\папка_0\'));
end;
end;Код: Выделить всё
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.
[Languages]
Name: default; MessagesFile: compiler:Default.isl
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Icons]
Name: {group}\My Program; Filename: {app}\MyProg.exe
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}
[Files]
Source:compiler:Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
[InstallDelete]
Name: {app}; Type: filesandordirsКод: Выделить всё
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.
[Languages]
Name: default; MessagesFile: compiler:Default.isl
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Icons]
Name: {group}\My Program; Filename: {app}\MyProg.exe
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}
[Files]
Source:compiler:Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
[UninstallDelete]
Name: {app}; Type: filesandordirsКод: Выделить всё
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.
[Languages]
Name: default; MessagesFile: compiler:Default.isl
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Icons]
Name: {group}\My Program; Filename: {app}\MyProg.exe
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}
[Files]
Source:compiler:Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
[InstallDelete]
Name: {app}; Type: filesandordirs
[UninstallDelete]
Name: {app}; Type: filesandordirsКод: Выделить всё
[UninstallDelete]
Name: {app}; Type: filesandordirs
Код: Выделить всё
[UninstallDelete]
Name: {app}; Type: files
Код: Выделить всё
[UninstallDelete]
Name: {app}; Type: dirifempty
Код: Выделить всё
[InstallDelete]
Name: {app}; Type: filesandordirs
Код: Выделить всё
[InstallDelete]
Name: {app}; Type: files
Код: Выделить всё
[InstallDelete]
Name: {app}; Type: dirifempty