Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Ветераны Инно!Нужна Ваша помощь.У меня есть несколько файлов gamedata.db* скажем это оригинал игры.Но помимо этого к игре есть адаптация для широкоформатных мониторов ,эти файлы я тоже запаковал.Теперь вопрос:как мне скомпилировать инсталятор,с возможностью выбора установки под нужный моник?Извиняюсь если объяснил непонятно.
это для основных файлов
[Files]
Source: E:\Инсталятор запакованной Солянки 2010\S.T.A.L.K.E.R\*; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
Habetdin
10-10-2010, 23:27
tor62, можно сделать так:
[Files]
...
Source: widescreen\*; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs; Components: ws
[Components]
Name: ws; Description: У меня широкоформатный экран; Flags: disablenouninstallwarning dontinheritcheck
Еще вопрос. Как добиться максимальной степени сжатия. Я делаю так:
[Setup]
MergeDuplicateFiles=yes
SolidCompression=yes
Compression=lzma/ultra
Но на деле сжатие отличается. Я к примеру взял от туда файл (http://forum.oszone.net/thread-95658.html) пакованный на "ИННО". И для сравнения создал проект, абсолютно одинаковый во содержимому и по размеру с тем который я скачал, и когда я компилирую свой то он все равно получается больше чем тот который я скачал.
И еще один вопрос, можно ли создать без фреймовый инсталлятор?
kotkovets
10-10-2010, 23:48
Как добиться максимальной степени сжатия »
[Setup]
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=true
MergeDuplicateFiles=true
kotkovets, А вот это разумный подход:?
[Setup]
Compression=lzma2/ultra
LZMAMatchFinder=BT
LZMAUseSeparateProcess=true
LZMANumFastBytes=273
LZMADictionarySize=131072
InternalCompressLevel=ultra
SolidCompression=true
MergeDuplicateFiles=true
В смысле на всех машинах будет работаь?
kotkovets
11-10-2010, 01:26
В смысле на всех машинах будет работаь? »
Чем больше, сжатие, тем дольше будет распаковываться и больше ресурсов будет тратится, что не очень хорошо для слабых, ну довольно слабых машин...
R.i.m.s.k.y.
11-10-2010, 08:24
Это все можно узнать из стандартной справки »
Вот ее то и не читают, я тоже этот талмуд не читаю, я юзаю поиск
Скрипты писал не я а собирал с разных ответов, по этому они поставляются "как есть" »
ага, мопед не мой... Разместили Вы, а ошибки не Ваши, хотя бы ссылку на первоисточник дали
R.i.m.s.k.y.
11-10-2010, 08:41
Ветераны инно, помогите!
1. Можно ли удалить кнопки свернуть/на весь экран/удалить из шапки инсталла? (что б дизайн был похож на инсталл DirectX) »
может так? http://forum.oszone.net/post-1426180-1867.html
по второму вопросу не знаю.
Подскажите пожалуйста , как реализовать такую задачу ?
Созданный инсталлятор программы состоит только из DLL файлов , которые устанавливаются в системную папку и , соответственно регистрируются.
Как при деинсталляции указать возможность выбора файлов для удаления.
Например:
Установлены в системную папку файлы: 1.dll, 2.dll, 3.dll, 4.dll, 5.dll
При деинсталляции необходимо указать возможность выбора каждого.
R.i.m.s.k.y.
12-10-2010, 10:01
При деинсталляции необходимо указать возможность выбора каждого. »
А если просто сообщения - вы хотите удалить 1.dll?
Тогда в Function InitializeUninstall делаем проверку If FileExists then MsgBox..., в секции Files для этих файлов флаг uninsneveruninstall.
Вот что наковырял
var
UnChoice: array[0..4] of TRadioButton
UnInstallPage: TWizardPage;
UnInstallPage:= CreateCustomPage(wpUserInfo,ExpandConstant('{cm:UninstallLabel}'),ExpandConstant('{cm:UninstallDescr iption}'));
for n:= 0 to 4 do begin
UnChoice[n]:= TRadioButton.Create(UnInstallPage)
UnChoice[n].Parent:= UnInstallPage.Surface;
UnChoice[n].Caption:= ExpandConstant(' {cm:UnChoice'+ IntToStr(n) +'} ');
UnChoice[n].SetBounds(WizardForm.PreparingLabel.Left + 16, WizardForm.PreparingLabel.Top + 25 + 25*(n+1), WizardForm.PreparingLabel.Width, UnChoice[n].Height); end;
if CurPageID = UnInstallPage.ID then begin
В шапке коллекция скриптов - InnoSetup_Upgrade. Я щаз два часа ковырял - тяму не хватило заставить работать.
necromanster
12-10-2010, 11:48
Здравствуйте господа. У меня проблема. После создания репака, и установки с него игры, я ее не могу удалить не с "установка и удаление программ", не с меню "Пуск".
Только физическое удаление папки игры. Скрипт создавался Inno Setup GameScript Generator 1.1.0.62 для Inno Setup Compiler 5-2-2.
Если создаю скрипт самим Inno Setup Compiler и правлю его istool, то все работает.
Пишет при попытке удаления что : Файл протокола для инстализации не распознан данной верией программы - деинстализатора.
Прошу помочь, и подсказать где проблема.
Вот скрипт:
; Скрипт создан с помощью
; IS GameScript Generator by South
; специально для www.csmania.ru
[Setup]
SourceDir=.
OutputDir=D:\
AppName=Две сорваные башни.
AppVerName=Две сорваные башни.
AppVersion=Две сорваные башни.
AppPublisher=Necromant SOFT
AppCopyright=Necromant SOFT
AppPublisherURL=www.norcom.ru
AppSupportURL=www.norcom.ru
AppUpdatesURL=www.norcom.ru
DefaultDirName={pf}\Две сорваные башни.
DefaultGroupName=Две сорваные башни.
AllowNoIcons=yes
OutputBaseFilename=setup
WizardImageFile=C:\Program Files (x86)\Smart Install Maker\Bitmaps\Import\Bmp002.bmp
WizardSmallImageFile=C:\Program Files (x86)\Smart Install Maker\Bitmaps\Import\Bmp013.bmp
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/ultra
SolidCompression=yes
DiskSpanning=yes
DiskSliceSize=314572800
SlicesPerDisk=1
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
[Files]
Source: "C:\Fraps\Screenshots\towers 2010-10-11 04-00-08-61.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "C:\Fraps\Screenshots\kmplayer 2010-10-11 21-18-45-61.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "C:\Fraps\Screenshots\kmplayer 2010-10-11 21-24-14-22.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "C:\Fraps\Screenshots\kmplayer 2010-10-11 21-25-34-98.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "C:\Fraps\Screenshots\towers 2010-10-11 03-59-56-43.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956405.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956406.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956407.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "G:\образы игр\2Bashni\2bashni\dve_sorvannye_bashni-1243956409.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "G:\образы игр\2Bashni\2bashni\091095d.jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: "isgsg.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression solidbreak
Source: C:\Users\necromantster\Desktop\ппкрпрку.reg; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\Games\Две сорванные башни\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
[Icons]
Name: "{group}\2bachni"; Filename: "{app}\towers.exe"; WorkingDir: "{app}"; Parameters: autorun;
Name: "{userdesktop}\2bachni"; Filename: "{app}\towers.exe"; WorkingDir: "{app}"; Tasks: desktopicon; Parameters: autorun;
Name: "{group}\launcher"; Filename: "{app}\launcher.exe"; WorkingDir: "{app}"; Parameters: launcher;
Name: "{userdesktop}\launcher"; Filename: "{app}\launcher.exe"; WorkingDir: "{app}"; Tasks: desktopicon; Parameters: launcher;
Name: "{group}\{cm:UninstallProgram,Две сорваные башни.}"; Filename: "{uninstallexe}"
[Run]
Description: "{cm:LaunchProgram, 2bachni}"; Filename: "{app}\towers.exe"; WorkingDir: "{app}"; Parameters: autorun; Flags: nowait postinstall skipifsilent unchecked
Description: "{cm:LaunchProgram, launcher}"; Filename: "{app}\launcher.exe"; WorkingDir: "{app}"; Parameters: launcher; Flags: nowait postinstall skipifsilent unchecked
Filename: {win}\regedit.exe; Parameters: /s {tmp}\ппкрпрку.reg; StatusMsg: "Вносим изменения в реестр ..."; Flags: waituntilterminated runasoriginaluser
[UninstallDelete]
Type: filesandordirs; Name: "{app}"
[_code]
const
Indent=25;
dURL=2;
var
URLLabel,URLLabelShadow:TLabel;
function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall delayload';
function ssInitialize(hParent:HWND;ssTimeShow:integer;FadeOut:boolean;StretchMode:integer;BkgColor:DWORD):boo lean; external 'ssInitialize@files:isgsg.dll stdcall delayload';
procedure ssDeInitialize; external 'ssDeInitialize@files:isgsg.dll stdcall delayload';
procedure ssSetBkgImage(FileName:PChar); external 'ssSetBkgImage@files:isgsg.dll stdcall delayload';
procedure ssAddImage(FileName:PChar); external 'ssAddImage@files:isgsg.dll stdcall delayload';
procedure ssStartShow; external 'ssStartShow@files:isgsg.dll stdcall delayload';
procedure ssStopShow; external 'ssStopShow@files:isgsg.dll stdcall delayload';
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';
procedure URLLabelClick(Sender: TObject);
var
ErrorCode:integer;
begin
ShellExec('open','www.norcom.ru','','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;
procedure URLLabelMouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
URLLabel.Top:=URLLabel.Top+dURL;
URLLabel.Left:=URLLabel.Left+dURL;
URLLabel.Font.Style:=URLLabel.Font.Style+[fsUnderline];
URLLabel.Font.Color:=clBlue;
URLLabelShadow.Visible:=False;
end;
procedure URLLabelMouseUp(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
URLLabel.Top:=URLLabel.Top-dURL;
URLLabel.Left:=URLLabel.Left-dURL;
URLLabel.Font.Style:=URLLabel.Font.Style-[fsUnderline];
URLLabel.Font.Color:=clMaroon;
URLLabelShadow.Visible:=True;
end;
procedure RunListClickCheck(Sender: TObject);
var
i:integer;
begin
if WizardForm.RunList.Checked[WizardForm.RunList.ItemIndex] then begin
for i:=0 to WizardForm.RunList.Items.Count-1 do
WizardForm.RunList.Checked[i]:=False;
WizardForm.RunList.Checked[WizardForm.RunList.ItemIndex]:=True;
end;
end;
function InitializeSetup:boolean;
begin
ExtractTemporaryFile('ппкрпрку.reg');
Result:=True;
end;
procedure InitializeWizard;
begin
WizardForm.RunList.OnClickCheck:=@RunListClickCheck;
URLLabelShadow:=TLabel.Create(WizardForm);
with URLLabelShadow do begin
Top:=ScaleY(331);
Left:=ScaleX(25);
Caption:='www.norcom.ru';
AutoSize:=True;
Parent:=WizardForm;
Transparent:=True;
Font.Color:=$969696;
Font.Size:=9;
Font.Style:=Font.Style+[fsBold];
end;
URLLabel:=TLabel.Create(WizardForm);
with URLLabel do begin
Top:=ScaleY(331)-dURL;
Left:=ScaleX(25)-dURL;
Caption:='www.norcom.ru';
AutoSize:=True;
Parent:=WizardForm;
Cursor:=crHand;
Transparent:=True;
Font.Color:=clMaroon;
Font.Size:=9;
Font.Style:=Font.Style+[fsBold];
BringToFront;
OnClick:=@URLLabelClick;
OnMouseDown:=@URLLabelMouseDown;
OnMouseUp:=@URLLabelMouseUp;
end;
ExtractTemporaryFile('091095d.jpg');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\091095d.jpg',1000,7000,3000,0,255,False ,$FFFFFF,10);
ssInitialize(GetWindowLong(MainForm.Handle,-8),10,False,1,$FF000000);
ExtractTemporaryFile('towers 2010-10-11 04-00-08-61.bmp');
ssSetBkgImage(ExpandConstant('{tmp}')+'\towers 2010-10-11 04-00-08-61.bmp');
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep=ssInstall then begin
ExtractTemporaryFile('dve_sorvannye_bashni-1243956405.jpg');
ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956405.jpg');
ExtractTemporaryFile('dve_sorvannye_bashni-1243956406.jpg');
ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956406.jpg');
ExtractTemporaryFile('dve_sorvannye_bashni-1243956407.jpg');
ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956407.jpg');
ExtractTemporaryFile('dve_sorvannye_bashni-1243956409.jpg');
ssAddImage(ExpandConstant('{tmp}')+'\dve_sorvannye_bashni-1243956409.jpg');
ExtractTemporaryFile('kmplayer 2010-10-11 21-24-14-22.bmp');
ssAddImage(ExpandConstant('{tmp}')+'\kmplayer 2010-10-11 21-24-14-22.bmp');
ExtractTemporaryFile('kmplayer 2010-10-11 21-18-45-61.bmp');
ssAddImage(ExpandConstant('{tmp}')+'\kmplayer 2010-10-11 21-18-45-61.bmp');
ExtractTemporaryFile('towers 2010-10-11 03-59-56-43.bmp');
ssAddImage(ExpandConstant('{tmp}')+'\towers 2010-10-11 03-59-56-43.bmp');
ExtractTemporaryFile('kmplayer 2010-10-11 21-25-34-98.bmp');
ssAddImage(ExpandConstant('{tmp}')+'\kmplayer 2010-10-11 21-25-34-98.bmp');
ssStartShow;
end;
if CurStep=ssPostInstall then ssStopShow;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpInstalling then begin
WizardForm.MainPanel.Visible:=False;
WizardForm.Bevel1.Visible:=False;
WizardForm.Width:=ScaleX(395);
WizardForm.Height:=ScaleY(142);
WizardForm.Left:=ScaleX(GetSystemMetrics(0)-WizardForm.Width-Indent);
WizardForm.Top:=ScaleY(GetSystemMetrics(1)-WizardForm.Height-Indent);
WizardForm.InnerNotebook.Left:=ScaleX(10);
WizardForm.InnerNotebook.Top:=ScaleY(10);
WizardForm.InnerNotebook.Width:=ScaleX(370);
WizardForm.StatusLabel.Left:=ScaleX(0);
WizardForm.StatusLabel.Top:=ScaleY(0);
WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.FileNameLabel.Left:=ScaleX(0);
WizardForm.FileNameLabel.Top:=ScaleY(20);
WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Top:=ScaleY(40);
WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width;
WizardForm.CancelButton.Left:=ScaleX(154);
WizardForm.CancelButton.Top:=ScaleY(80);
end;
if (CurPageID=wpFinished) or (CurPageID=wpInfoAfter) then begin
WizardForm.RunList.Checked[0]:=True;
if WizardForm.Width<>502 then begin
WizardForm.Visible:=False;
WizardForm.Width:=ScaleX(502);
WizardForm.Height:=ScaleY(392);
WizardForm.Left:=(GetSystemMetrics(0)-WizardForm.Width) div 2;
WizardForm.Top:=(GetSystemMetrics(1)-WizardForm.Height) div 2;
WizardForm.MainPanel.Visible:=True;
WizardForm.Bevel1.Visible:=True;
WizardForm.InnerNotebook.Left:=ScaleX(40);
WizardForm.InnerNotebook.Top:=ScaleY(72);
WizardForm.InnerNotebook.Width:=ScaleX(417);
WizardForm.Visible:=True;
end;
end;
end;
procedure DeinitializeSetup;
begin
ssDeInitialize;
end;
R.i.m.s.k.y.
12-10-2010, 12:08
Здравствуйте господа. »
Господа все в Париже :)
Прошу помочь, и подсказать где проблема. »
У меня все поставилось (без секции Files) и деинсталлилось...
Только при установке последнее окно где-то внизу-справа оказалось.
в папке Source: "D:\Games\Две сорванные башни\*" случайно нету файлов unins*? файлы unins*.dat и unins.exe инно создает сам в процессе установки.
И код надо заключать в теги , а такой здоровый кусок - под кат
скрытый текст, который будет отображаться при нажатии на заголовок
_ убрать из тегов.
necromanster
12-10-2010, 13:05
в папке Source: "D:\Games\Две сорванные башни\*" случайно нету файлов unins*? файлы unins*.dat и unins.exe инно создает сам в процессе установки.
Есть. Что их удалить нужно перед запаковкой ?
И еслти не трудно, еще один вопрос. Как сделать так, что бы при установке игры, устанавливалось дополнительное ПО. (DirectX и тому подобное.)
Искал ответ на форуме, но внятного описания нет.
R.i.m.s.k.y.
12-10-2010, 13:18
Что их удалить нужно перед запаковкой ? »
ну дык они замещают инношные unins*
Как сделать так, что бы при установке игры, устанавливалось дополнительное ПО »
DirectX
http://forum.oszone.net/post-1455980.html#post1455980
http://forum.oszone.net/post-1456143.html#post1456143
Легко находится по слову DirectX
А вообще надо смотреть что за ПО, некоторое надо еще проверять на версии чтобы старым не заменить новое.
Добрый день
Нужна помощь.сделал нсталятор в котором есть две группы ,как сделать чтобы на странице выбора установки не была сразу отмечена галочкой сама группа и её компоненты,при выборе группы не выбирались оба компонента,при выборе одного компонента группы снимался выбор со второго
[Types]
Name: "viborochnaya"; Description: "Выборочная установка"; Flags: iscustom
[Components]
Name: "Gruppa1"; Description: "Название"; Types: viborochnaya
Name: "Gruppa1\Component1"; Description: "Название"; Types: viborochnaya
Name: "Gruppa1\Component2"; Description: "Название"; Types: viborochnaya
Name: "Gruppa2"; Description: "Название"; Types: viborochnaya
Name: "Gruppa2\Component1"; Description: "Название"; Types: viborochnaya
Name: "Gruppa2\Component2"; Description: "Название"; Types: viborochnaya
[Files]
Source: E:\Новая папка\Папка1\*; Components: Gruppa1\Component1; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs
Source: E:\Новая папка\папка2\*; Components: Gruppa1\Component2; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs
Source: E:\Новая папка\Папка3\*; Components: Gruppa2\Component1; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs
Source: E:\Новая папка\папка4\*; Components: Gruppa2\Component2; DestDir: {app}; Flags: recursesubdirs ignoreversion sortfilesbyextension createallsubdirs
Подскажите что нужно дописать?Заранее благодарю.
R.i.m.s.k.y.
12-10-2010, 15:01
Добрый день »
Симметрично добрый!
[Types]
Name: "viborochnaya"; Description: "Выборочная установка"; Flags: iscustom
Name: "full"; Description: "Полная установка"; Flags:
[Components]
Name: "Gruppa1"; Description: "Название"; Types: full; Flags: checkablealone
Name: "Gruppa1\Component1"; Description: "Название"; Types: viborochnaya; Flags: dontinheritcheck
Name: "Gruppa1\Component2"; Description: "Название"; Types: full; Flags: dontinheritcheck
Name: "Gruppa2"; Description: "Название"; Types: viborochnaya
Name: "Gruppa2\Component1"; Description: "Название"; Types: viborochnaya; Flags: exclusive
Name: "Gruppa2\Component2"; Description: "Название"; Types: viborochnaya; Flags: exclusive
Экспериментируем с флагами exclusive (выбрать один из многих), checkablealone (можно выбрать один без "дочек"), dontinheritcheck (не выбирать "дочку" при выборе "родителя", не дружит с exclusive)
Подскажите что нужно дописать?Заранее благодарю. »
Если сообщение помогло - давим внизу "Полезное сообщение", не помогло - задаем наводящие вопросы.
shao,
забыл дописать, по первому варианту (вывод сообщений) если есть вопросы - в личку, напишу код, по второму (inno setup upgrade) я не подскажу, знаний не хватает. В данномвопросе вторым способом могут помочь камрады Serega и Habetdin.
А если просто сообщения - вы хотите удалить 1.dll? »
Разве что, если нет других вариантов.
Но , желательно все-таки с возможностью выбора из , например, списка/перечня удаляемых файлов.
Тогда в Function InitializeUninstall делаем проверку If FileExists then MsgBox »
Это уже из Паскаля... А я его не знаю.... :unsure:
Схожу-ка в личку
В данном вопросе вторым способом могут помочь камрады Serega и Habetdin »
Да , спасибо ! Будем ждать их реакции..... :drug: :coffee:
R.i.m.s.k.y.
12-10-2010, 16:42
Это уже из Паскаля... А я его не знаю »
Ну хотя бы общие черты кода инно
Procedure www (filetodel : string);
var st : string;
begin
st := ExpandConstant('{sys}\' + filetodel;
if MsgBox('Удалить файл ' + filetodel +'?', mbError, MB_YESNO) = idYes then begin
if DeleteFile(st) = False then MsgBox('Не удалось удалить файл '+ filetodel, mbInformation, MB_OK);
end;
end;
Function InitializeUninstall: Boolean;
begin
if (FileExists(ExpandConstant('{sys}\1.dll'))) then www('1.dll');
...
if (FileExists(ExpandConstant('{sys}\5.dll'))) then www('5.dll');
end;
Могут быть орфографические ошибки.
А к старшим вопрос - как при деинсталляции создать окно выбора чего удалять? Коллекцию скриптов смотрел, курил - не понял.
Спасибо.
Насколько я понимаю - здесь :
Function InitializeUninstall: Boolean;
begin
if (FileExists(ExpandConstant('{sys}\1.dll'))) then www('1.dll');
...
if (FileExists(ExpandConstant('{sys}\5.dll'))) then www('5.dll');
end;
необходимо указывать свои данные. Месторасположение и сами файлы ...
R.i.m.s.k.y.
12-10-2010, 17:09
необходимо указывать свои данные. Месторасположение и сами файлы »
Да, свои файлы 1-2-3-4-5 dll. Вы написали что они хранятся в систем32 - я сделал на эту папку. Если у Вас будет время свободное - скачайте русскую справку и прочитайте что делают функции ExpandConstant и InitializeUninstall. FileExists ясно что делает из названия ;)
Советую там почитать еще и порядок установки - какие секции и функции когда выполняются. Если непонятно - спрашивайте, я подскажу.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.