Старый вопрос... а как?
Как "тихо" запустить определённый exe-шник, копируемый в папку установки, сразу же после его успешного копирования и потом закрыть его "автоматом", или после распаковки всех файлов приложения, НО ДО ЗАВЕРШЕНИЯ УСТАНОВКИ?
Ничего "криминального" - этот "файл" является небольшой родной "утилиткой", которая собирает определённые сведения о системе и прописывает необходимые данные в реестр в ветку устанавливаемого приложения.
Если есть какой-нибудь другой способ, то тоже неплохо.
Пробовал в секции Run - сначала запустить этот файл, а потом, убить его с помощью батника, в котором прописано "taskkill /f /im MyProg.exe" - НЕ получается, прога запускается и висит, батник не запускается, пока прогу НЕ закроешь, а мне ведь и НАДО ЕЁ закрыть!!!
Если поставить флаг "nowait", то он действительно НЕ ждёт и не даёт файлу даже запуститься...
читать дальше »
Почему-то НЕ работает флаг "runhidden", он не скрывает окно приложения и даже НЕ сворачивает с флагом "runminimized".
Этот флаг работает только для скрытия консольных окон что ли? Их он скрывает без проблем.
Помогите, пожалуйста!!! Может через секцию Code как-то можно сделать?
Пробовал так, тоже не получилось:
читать дальше »
Код:

function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@{app}\ISTask.dll stdcall delayload;
function KillTask(ExeFileName: string): Integer;
external 'KillTask@{app}\ISTask.dll stdcall delayload';
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode:Integer;
begin
if CurStep = ssPostInstall then
begin
Exec(ExpandConstant('{app}\MyProg.exe'), '', ExpandConstant('{app}'), SW_Hide, ewWaitUntilTerminated, ResultCode);
begin
if RunTask('MyProg.exe', false) then
KillTask('MyProg.exe');
UnloadDll(ExpandConstant('{app}\ISTask.dll'));
end;
end;
И так: Exec('taskkill', '/f /im MyProg.exe', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
А также можно ли, чтобы данные в реестр вносились "в самом начале" или же "2 раза" или "по частям". Нужно, чтобы выбранный путь установки (папка назначения), внеслись в реестр ДО завершения установки.