function Exec(const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer): Boolean;
Выполняет запуск указанного исполняемого (.exe) или пакетного (.bat) файла, используя те же учётные данные, что и программа установки/удаления. Параметр Wait определяет немедленный возврат функции или ожидание завершения запущенного процесса или его бездействия. Функция возвращает значение True, если указанный файл был успешно запущен, в противном случае False.
Если функция вернула True, а для параметра Wait задано значение ewWaitUntilTerminated, тогда параметр ResultCode возвращает код выхода запущенного процесса.
Если функция вернула False, то значение параметра ResultCode указывает на возникшую ошибку. Используйте SysErrorMessage(ResultCode) для получения описания ошибки.
Класс TExecWait
представлен следующими значениями:
TExecWait = (ewNoWait, ewWaitUntilTerminated, ewWaitUntilIdle);
Используйте функцию ShellExec, если требуется запустить файл отличный от исполняемого или пакетного.
Не заключайте значение параметра Filename в кавычки: функция добавит их автоматически.
Параметр WorkingDir может быть пустой строкой. В этом случае функция попытается получить рабочий каталог из параметра Filename и использовать его в качестве текущего каталога процесса. Если в Filename не указано имя пути, то будет использован каталог по умолчанию.
Если в одной строке содержится имя файла и параметры его запуска (например, командная строка, полученная из ключа UninstallString в реестре), нет необходимости в их разделении: просто передайте '>' в параметре Filename, а всю командную строку в параметре Params. (Обратите внимание, что в этом случае поддержка файлов .bat и .cmd отключается; просто указанная командная строка передается в CreateProcess без какой-либо обработки.)
По умолчанию, когда программа установки/удаления выполняется в 64-разрядном режиме установки, при вызове CreateProcess эта функция отключает перенаправление файловой системы в WOW64. Это можно переопределить, вызвав функцию EnableFsRedirection.
Эта функция не может использоваться для запуска самой программы установки до тех пор, пока не начнётся процесс установки.
Внимание! По сравнению с функцией Exec в ISPP параметры ShowCmd и Wait поменяны местами!
var ResultCode: Integer; begin // Запускаем Блокнот и ожидаем завершения его работы if Exec(ExpandConstant('{win}\notepad.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then begin // выполняем какие-либо действия в случае успеха // параметр ResultCode содержит код выхода end else begin // выполняем какие-либо действия в случае неудачи // параметр ResultCode содержит код выхода end; end;