Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 [104] 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

TheLeon
03-09-2017, 13:49
Здравствуйте, уважаемые пользователи Oszone.net(Форума). Выскакивает ошибка при компиляции проекта, а именно(причина понятна, но не знаю как решить):
http://s019.radikal.ru/i636/1709/b0/7e32ee7d5639.png (Решено)

Сам код:

[Code]
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
case CurPageID of
wpSelectDir:
if not FileExists(ExpandConstant('{app}\steam.exe')) then begin
MsgBox('Ошибка! Вы должны указать путь к папке Steam.', mbError, MB_OK);
Result := False;
end;
end;
end;
procedure SomeProc;
begin
end;
var
DelTmp: TNewCheckBox;
function DelTmpCheck(): boolean;
begin
result := DelTmp.Checked;
end;
procedure InitializeWizard();
begin
WizardForm.RunList.Height := ScaleY(WizardForm.RunList.Height-100);
DelTmp := TNewCheckBox.Create(WizardForm);
DelTmp.Parent := WizardForm.FinishedPage;
DelTmp.Caption := ' Очистить временные файлы игры (рекомендуется)';
DelTmp.Left := ScaleX(180);
DelTmp.Top := ScaleY(170);
DelTmp.Width := ScaleX(300);
DelTmp.Height := ScaleY(15);
DelTmp.Checked := true;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssDone:
begin
if DelTmpCheck then
begin
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\directx_installer\*'), false, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\csgo_lv\streams\*'), false, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\EmptySteamDepot'), True, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\thirdpartylegalnotices.doc'), false, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\installscript.vdf'), false, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\images'), True, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\maps'), True, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\scripts'), True, true, true);
DelTree(ExpandConstant('{userdocs}\images'), True, true, true);
DelTree(ExpandConstant('{userdocs}\maps'), True, true, true);
DelTree(ExpandConstant('{userdocs}\scripts'), True, true, true);
end;
end;
end;
end;
var
ImagePanel: TPanel;
ComponentsInfoImage: TBitmapImage;

procedure ComponentsListClickCheck(Sender: TObject);
begin
If IsComponentSelected('LEON\DE_DUST2') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_dust2.bmp')) else
If IsComponentSelected('LEON\DE_INFERNO') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_inferno.bmp')) else
If IsComponentSelected('LEON\DE_MIRAGE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_mirage.bmp')) else
If IsComponentSelected('LEON\DE_CACHE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_cache.bmp')) else
If IsComponentSelected('LEON\DE_CBBLE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_cbble.bmp')) else
If IsComponentSelected('LEON\DE_OVERPASS') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_overpass.bmp')) else
If IsComponentSelected('LEON\CS_ITALY') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_italy.bmp')) else
If IsComponentSelected('LEON\DE_TRAIN') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_train.bmp')) else
If IsComponentSelected('LEON\DE_NUKE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_nuke.bmp')) else

If IsComponentSelected('FROOSH\DE_DUST2') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_dust2.bmp')) else
If IsComponentSelected('FROOSH\DE_INFERNO') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_inferno.bmp')) else
If IsComponentSelected('FROOSH\DE_MIRAGE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_mirage.bmp')) else
If IsComponentSelected('FROOSH\DE_CACHE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_cache.bmp')) else
If IsComponentSelected('FROOSH\DE_CBBLE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_cbble.bmp')) else
If IsComponentSelected('FROOSH\DE_OVERPASS') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_overpass.bmp')) else
If IsComponentSelected('FROOSH\DE_SEASON') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_season.bmp'));
end;

procedure InitializeWizard();
begin
WizardForm.TYPESCOMBO.Visible:= false;
WizardForm.ComponentsList.Visible := True;
WizardForm.ComponentsList.Height := ScaleX(100);
WizardForm.ComponentsList.Top := ScaleX(47);
WizardForm.ComponentsList.Width := ScaleX(232);
WizardForm.ComponentsDiskSpaceLabel.Visible := False;

ImagePanel := TPanel.Create(WizardForm);
ImagePanel.Parent := WizardForm.SelectComponentsPage;
ImagePanel.Caption := '';
ImagePanel.Top := ScaleX(47);
ImagePanel.Left := ScaleX(240);
ImagePanel.Width := ScaleX(177);
ImagePanel.Height := ScaleX(101);
ImagePanel.BevelInner := bvRaised;
ImagePanel.BevelOuter := bvLowered;

ExtractTemporaryFile('leon_dust2.bmp');
ExtractTemporaryFile('leon_inferno.bmp');
ExtractTemporaryFile('leon_mirage.bmp');
ExtractTemporaryFile('leon_cache.bmp');
ExtractTemporaryFile('leon_cbble.bmp');
ExtractTemporaryFile('leon_overpass.bmp');
ExtractTemporaryFile('leon_italy.bmp');
ExtractTemporaryFile('leon_train.bmp');
ExtractTemporaryFile('leon_nuke.bmp');

ExtractTemporaryFile('froosh_dust2.bmp');
ExtractTemporaryFile('froosh_inferno.bmp');
ExtractTemporaryFile('froosh_mirage.bmp');
ExtractTemporaryFile('froosh_cache.bmp');
ExtractTemporaryFile('froosh_cbble.bmp');
ExtractTemporaryFile('froosh_overpass.bmp');
ExtractTemporaryFile('froosh_season.bmp');

WizardForm.ComponentsList.OnClickCheck:= @ComponentsListClickCheck;
ComponentsInfoImage:= TBitmapImage.Create(WizardForm);
ComponentsInfoImage.Parent:= ImagePanel;
ComponentsInfoImage.Top:= ScaleY(4);
ComponentsInfoImage.Left:= ScaleX(4);
ComponentsInfoImage.Width:= ScaleX(168);
ComponentsInfoImage.Height:= ScaleY(92);
ComponentsInfoImage.Stretch:= True;
ComponentsInfoImage.BringToFront;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectComponents: ComponentsListClickCheck(nil);
end;
end;

Iska
03-09-2017, 14:13
Выскакивает ошибка при компиляции проекта, а именно: »
В коде Вашего проекта две процедуры с одним и тем же именем «InitializeWizard()».

Nordek
03-09-2017, 14:42
TheLeon, Исправил:
[Code]
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
case CurPageID of
wpSelectDir:
if not FileExists(ExpandConstant('{app}\steam.exe')) then begin
MsgBox('Ошибка! Вы должны указать путь к папке Steam.', mbError, MB_OK);
Result := False;
end;
end;
end;
procedure SomeProc;
begin
end;
var
DelTmp: TNewCheckBox;
function DelTmpCheck(): boolean;
begin
result := DelTmp.Checked;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssDone:
begin
if DelTmpCheck then
begin
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\directx_installer\*'), false, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\csgo_lv\streams\*'), false, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\EmptySteamDepot'), True, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\thirdpartylegalnotices.doc'), false, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\installscript.vdf'), false, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\images'), True, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\maps'), True, true, true);
DelTree(ExpandConstant('{app}\steamapps\common\Counter-Strike Global Offensive\scripts'), True, true, true);
DelTree(ExpandConstant('{userdocs}\images'), True, true, true);
DelTree(ExpandConstant('{userdocs}\maps'), True, true, true);
DelTree(ExpandConstant('{userdocs}\scripts'), True, true, true);
end;
end;
end;
end;
////////////////////////////////////////////////////////////////////////////////////////////////
var
ImagePanel: TPanel;
ComponentsInfoImage: TBitmapImage;

procedure ComponentsListClickCheck(Sender: TObject);
begin
If IsComponentSelected('LEON\DE_DUST2') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_dust2.bmp')) else
If IsComponentSelected('LEON\DE_INFERNO') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_inferno.bmp')) else
If IsComponentSelected('LEON\DE_MIRAGE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_mirage.bmp')) else
If IsComponentSelected('LEON\DE_CACHE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_cache.bmp')) else
If IsComponentSelected('LEON\DE_CBBLE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_cbble.bmp')) else
If IsComponentSelected('LEON\DE_OVERPASS') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_overpass.bmp')) else
If IsComponentSelected('LEON\CS_ITALY') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_italy.bmp')) else
If IsComponentSelected('LEON\DE_TRAIN') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_train.bmp')) else
If IsComponentSelected('LEON\DE_NUKE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\leon_nuke.bmp')) else

If IsComponentSelected('FROOSH\DE_DUST2') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_dust2.bmp')) else
If IsComponentSelected('FROOSH\DE_INFERNO') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_inferno.bmp')) else
If IsComponentSelected('FROOSH\DE_MIRAGE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_mirage.bmp')) else
If IsComponentSelected('FROOSH\DE_CACHE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_cache.bmp')) else
If IsComponentSelected('FROOSH\DE_CBBLE') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_cbble.bmp')) else
If IsComponentSelected('FROOSH\DE_OVERPASS') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_overpass.bmp')) else
If IsComponentSelected('FROOSH\DE_SEASON') then
ComponentsInfoImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\froosh_season.bmp'));
end;


procedure InitializeWizard();
begin
WizardForm.TYPESCOMBO.Visible:= false;
WizardForm.ComponentsList.Visible := True;
WizardForm.ComponentsList.Height := ScaleX(100);
WizardForm.ComponentsList.Top := ScaleX(47);
WizardForm.ComponentsList.Width := ScaleX(232);
WizardForm.ComponentsDiskSpaceLabel.Visible := False;

ImagePanel := TPanel.Create(WizardForm);
ImagePanel.Parent := WizardForm.SelectComponentsPage;
ImagePanel.Caption := '';
ImagePanel.Top := ScaleX(47);
ImagePanel.Left := ScaleX(240);
ImagePanel.Width := ScaleX(177);
ImagePanel.Height := ScaleX(101);
ImagePanel.BevelInner := bvRaised;
ImagePanel.BevelOuter := bvLowered;

ExtractTemporaryFile('leon_dust2.bmp');
ExtractTemporaryFile('leon_inferno.bmp');
ExtractTemporaryFile('leon_mirage.bmp');
ExtractTemporaryFile('leon_cache.bmp');
ExtractTemporaryFile('leon_cbble.bmp');
ExtractTemporaryFile('leon_overpass.bmp');
ExtractTemporaryFile('leon_italy.bmp');
ExtractTemporaryFile('leon_train.bmp');
ExtractTemporaryFile('leon_nuke.bmp');

ExtractTemporaryFile('froosh_dust2.bmp');
ExtractTemporaryFile('froosh_inferno.bmp');
ExtractTemporaryFile('froosh_mirage.bmp');
ExtractTemporaryFile('froosh_cache.bmp');
ExtractTemporaryFile('froosh_cbble.bmp');
ExtractTemporaryFile('froosh_overpass.bmp');
ExtractTemporaryFile('froosh_season.bmp');

WizardForm.ComponentsList.OnClickCheck:= @ComponentsListClickCheck;
ComponentsInfoImage:= TBitmapImage.Create(WizardForm);
ComponentsInfoImage.Parent:= ImagePanel;
ComponentsInfoImage.Top:= ScaleY(4);
ComponentsInfoImage.Left:= ScaleX(4);
ComponentsInfoImage.Width:= ScaleX(168);
ComponentsInfoImage.Height:= ScaleY(92);
ComponentsInfoImage.Stretch:= True;
ComponentsInfoImage.BringToFront;

WizardForm.RunList.Height := ScaleY(WizardForm.RunList.Height-100);
DelTmp := TNewCheckBox.Create(WizardForm);
DelTmp.Parent := WizardForm.FinishedPage;
DelTmp.Caption := ' Очистить временные файлы игры (рекомендуется)';
DelTmp.Left := ScaleX(180);
DelTmp.Top := ScaleY(170);
DelTmp.Width := ScaleX(300);
DelTmp.Height := ScaleY(15);
DelTmp.Checked := true;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectComponents: ComponentsListClickCheck(nil);
end;
end;

P.S Теперь найдите отличия между своим кодом и из данного сообщения.

TheLeon
03-09-2017, 14:45
Nordek, спасибо.

Nordek
03-09-2017, 14:46
Не понятно что за "Файл 147853"
Страница не найдена. Если вы уверены, что использовали правильную ссылку, свяжитесь с администрацией

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

TheLeon
03-09-2017, 14:54
Nordek, "Файл 147853" - это был весь проект(на всякий если кому-нибудь понадобится для проверки), но решил удалить.

ErikPshat
10-09-2017, 01:27
Помогите пожалуйста, знаю наверняка 100500 раз это спрашивали, но никак не могу найти подходящую формулу.
Нужно, перед установкой программы, проверить, установлена ли до этого данная программа и, если установлена, то запустить её стандартную деинсталляцию. После удаления продолжить инсталляцию.

Я нарыл такой код, но он у меня никак не проявляет себя:

[Code]
var
ResultCode: Integer;
function InitializeSetup(): Boolean;
begin
// вызов деинсталяции перед установкой
Exec(ExpandConstant('{uninstallexe}'), '/SILENT', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
Result := True;
end;

habib2302
10-09-2017, 02:25
Доброе время суток. Помогите решить проблему. Указал минимальную версию 0,6.4 (Win 10) в Setup'е, но при запуске выдает ошибку о том, что программа не может быть установлена

habib2302
10-09-2017, 02:45
ErikPshat,
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
AppId=wwwwwwwwwwwwww

[code]

function UninstallMyApp(): Boolean;
var
Buff: String;
i: Integer;
begin
Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
if not Result then Result := not FileExists(RemoveQuotes(Buff));
if not Result then if MsgBox('Перед установкой необходимо удалить предыдущую версию приложения. Продолжить?', mbError, MB_YESNO) = IDYES then
try
Exec(RemoveQuotes(Buff), '', ExtractFilePath(RemoveQuotes(Buff)), SW_SHOW, ewWaitUntilTerminated, i);
finally
Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
if not Result then MsgBox('Удаление завершилось неудачей, бывай!', mbError, MB_OK);
end;
end;



function InitializeSetup(): Boolean;
begin
Result := UninstallMyApp();
end;

Nordek
10-09-2017, 05:06
Указал минимальную версию ... (Win 10) »What browser am I using? Is my browser up to date? (https://www.whatismybrowser.com/)
What browser am I using? (http://www.whatsmybrowser.org/)
Mr. Whoer (https://whoer.net/)

Windows NT
Mozilla/5.0 (Windows NT 6.4; Win64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36

Windows 10 (Реальность)
Mozilla/5.0 (Windows NT 10.0; Win64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36

Указал минимальную версию 0,6.4 (Win 10) »
Windows 10 кривая, определяет и как Windows 8.1 и как Windows 10 уже с MinVersion 6.3, вы же замахнулись аж на MinVersion 6.4.
Указав MinVersion 6.3 - уже будет блокировать Windows 10.

Укажите:
MinVersion=0,6.2

ErikPshat
10-09-2017, 13:37
habib2302, спасибо! Проверил, отлично работает по умолчанию.

R.i.m.s.k.y.
10-09-2017, 19:44
Windows 10 кривая, определяет и как Windows 8.1 и как Windows 10 уже с MinVersion 6.3, вы же замахнулись аж на MinVersion 6.4.
Указав MinVersion 6.3 - уже будет блокировать Windows 10. »
не согласен
старый инно, манифест давно не обновлялся вот и путает установщик 0,6.3 с Win 10
лично я определяю версию по ntoskrnl.exe

[CODE]

var
VersionMSntoskrnl, VersionLSntoskrnl: Cardinal;

function InitializeSetup(): Boolean;
begin
GetVersionNumbers(ExpandConstant('{sys}\ntoskrnl.exe'), VersionMSntoskrnl, VersionLSntoskrnl);
end;
...
function IsWin10(): Boolean;
begin
if VersionMSntoskrnl > $60003 then Result := True else Result := False;
end;

Nightwishh
10-09-2017, 22:44
Можете посмотреть правильно ли я прикрути к ISDone новую форму окна отмены установки
Вот код новой формы окна отмены установкиvar
CancelForm: TSetupForm;
YesButton: TNewButton;
NoButton: TNewButton;
FormClose: Boolean;

procedure CancelFormButtonClick(Sender: TObject);
begin
case TNewButton(Sender) of
YesButton: FormClose := True;
NoButton: FormClose := False;
end;
CancelForm.Close;
end;

function ShowCancelMessage(): Boolean;
begin
CancelForm := CreateCustomForm();
try
with CancelForm do
begin
ClientWidth := ScaleX(473);
ClientHeight := ScaleY(129);
BorderIcons := [];
Caption := SetupMessage(msgExitSetupTitle);
CenterInsideControl(WizardForm, False);
end;

with TLabel.Create(CancelForm) do
begin
Parent := CancelForm;
SetBounds(ScaleX(60), ScaleY(10), ScaleX(400), ScaleY(80));
AutoSize := False;
Caption := SetupMessage(msgExitSetupMessage);
end;

YesButton := TNewButton.Create(CancelForm);
with YesButton do
begin
Parent := CancelForm;
SetBounds(ScaleX(157), ScaleY(95), ScaleX(75), ScaleY(23));
OnClick := @CancelFormButtonClick;
Caption := SetupMessage(msgButtonYes);
end;

NoButton := TNewButton.Create(CancelForm);
with NoButton do
begin
Parent := CancelForm;
SetBounds(ScaleX(241), ScaleY(95), ScaleX(75), ScaleY(23));
OnClick := @CancelFormButtonClick;
Caption := SetupMessage(msgButtonNo);
end;

CancelForm.ShowModal;
Result := FormClose;
finally
CancelForm.Free;
end;
end;
ISDoneprocedure CancelButtonOnClick(Sender: TObject);
begin
SuspendProc;
if ShowCancelMessage then ISDoneCancel:=1;
ResumeProc;
end;

habib2302
12-09-2017, 18:19
Доброе время суток. Как отключить в деинсталляторе диалог с процессбаром оставив msgbox?

habib2302
18-09-2017, 15:12
Доброе время суток. Решил перейти на обычную (не расширенную) версию innosetup. При переходе решил изменить код. Но дело в том, что перестала работать ботва т.е. не отображаются картинки. Помогите решить проблему.
https://yadi.sk/d/Dcs1Az1T3Mz4BM

ZVSRus
19-09-2017, 15:25
habib2302,
Как отключить в деинсталляторе диалог с процессбаром оставив msgbox?
Какой msgbox вы хотите оставить, до (который спрашивает, Вы действительно хотите удалить программу) или после (Который информирует, что программа удалена)?

habib2302
19-09-2017, 16:03
ZVSRus, хочу оставить "Вы действительно хотите удалить программу" и "Программа была полностью удалена"
Хочу удалить (скрыть) вот этот диалог

http://s019.radikal.ru/i624/1709/7b/3e769f109308.png (http://s019.radikal.ru/i605/1709/d7/cb01508e61c4.png)

ZVSRus
19-09-2017, 16:40
habib2302,

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

[Code]
function InitializeUninstall:boolean;
var
rcode: Integer;
begin
Result:= False;
if not UninstallSilent then begin
Exec(ExpandConstant('{uninstallexe}'), '/VERYSILENT', '', SW_SHOW, ewNoWait, RCode);
Exit;
end;
if MsgBox('Вы действительно хотите удалить программу?', mbConfirmation, MB_YESNO) = IDYES then
Result:= True;
MsgBox('Программа полностью удалена', mbInformation, mb_ok);
end;

vk_k14m@vk
20-09-2017, 00:35
Как запускать дополнительное приложение во время установки?

Допустим идет установка приложения:

адрес_установки/test/test.exe
адрес_установки/test/data/packer.exe
адрес_установки/test/data/00/file01
адрес_установки/test/data/00/file02
адрес_установки/test/data/00/file03
адрес_установки/test/data/00/fileXX
адрес_установки/test/data/01/file01
адрес_установки/test/data/01/file02
адрес_установки/test/data/01/file03
адрес_установки/test/data/01/fileXX

После распаковки этих файлов должна запуститься консоль и запаковать папки "00" и "01" в специальне архив с помощью packer.exe. В консоли это будет выглядеть так:

packer.exe 00
packer.exe 01
Или пусть это будет *.bat файл, который после установки приложение должен будет удалиться...

После чего консоль закрывается и приложение считается установленным. Как это устроить?

Iska
20-09-2017, 00:58
vk_k14m@vk, что мешает сделать это даже до создания инсталляции? Что мешает «запаковать папки "00" и "01" в специальне архив с помощью packer.exe» на месте и поместить в инсталляцию уже готовый архив?




© OSzone.net 2001-2012