Цитата user_123:
Подскажите, как сделать, чтобы выводился запрос на удаление подкаталога {app}\log (по умолчанию не должен удаляться)при деинсталляции приложения?
Код: 
function <...>(): Boolean;
begin
if MsgBox(''+ ExpandConstant('{cm:removelogs}') +'', mbInformation, mb_YesNo) = idYes then
begin
<...>
end;
end;
»
|
Отвечаю сам на свой вопрос.
Кое-что написал сам (по образцу (
скачивал с вашего форума) некоторых скриптов):
Код:

procedure InitializeUninstallProgressForm();
begin
if MsgBox(CustomMessage('MyCustomMessage'), mbConfirmation, MB_YESNO) = IDYES then
DelTree(ExpandConstant('{app}\subdir'),True,True,True)
end;
Вроде бы работает... Но есть некоторые трудности... Перед тем как удалить программу, надо завершить её процесс... У меня не получается реализовать это в деинсталляторе через секцию code по Вашим образцам, istask.dll распаковывается в папку деинсталлятора... компилятор сообщает о синтаксических ошибках (я с образца всё верно переписал и оптимизировал под свою прогрмму)... В инсталляторе я сделал, работает нормально... Пробовал для деинсталлятора прописать по образцу инсталлятора - скомпилировалось без проблем, но при запуске деинсталятора появилась ошибка...
Закрытие программы я реализовал так:
Код:

[UninstallRun]
Filename: {sys}\taskkill.exe; Parameters: /f /im MyProg.exe /t; Flags: runhidden
Всё было бы замечательно, если бы это выполнялось ДО удаления {app}\subdir... Но после стандартного запроса об удалении программы.
Может, достаточно написать другую процедуру... подскажите, пожалуйста, какую...