AVZ 5. Руководство пользователя
×
Меню
Индекс

16.36.1. function  ExecuteFile

function  ExecuteFile(FileName, Params : string;
                     Mode : integer; WaitTime : integer;
                     Terminate : boolean) : boolean;
 
 
Производит выполнение указанного файла с заданными параметрами.  
Функция возвращает true в случае успешного запуска процесса, false в случае ошибки.
 
FileName - имя файла. В имени файла допустимы макросы, подробнее см. в разделе "макросы, допустимые в именах файлов".
 
Params - параметры. При отсутствии параметров передается пустая строка. Параметры так-же допустимо передавать после имени запускаемого файла, отделяя их запятой
 
Mode - код режима отображения запускаемой программы. Поддерживаются коды:
0 - запуск приложения с флагом SW_HIDE - при этом окно приложения невидимо для пользователя
1 - стандартное отображение окна запускаемого приложения
2 - окно запускаемого приложения минимизировано
3 - окно запускаемого приложения развернуто на весь экран
 
WaitTime - время в миллисекундах, в течении которого производится ожидание завершения запущенной программы. Указание нулевого времени приводит к тому, что скрипт продолжает свое выполнение без ожидания  завершения запущенной программы. Минимальная задержка - 100 мс, указание меньшей задержки приводит к тому, что она будет установлена на 100 мс. Ожидание завершается по достижению одного из двух событий - истечению указанного времени или завершению запущенной программы. Важно, что при указании ненулевого WaitTime работа скрипта будет приостановлена до истечения таймаута или до момента завершения запущенной программы. С помощью GetLastExitCode можно определить тот факт, что работа процесса была прервана по таймауту.
 
В случае, если во время ожидания завершения приложения, запущенного скриптом, пользователь принудительно остановит работу скрипта, AVZ делает попытку остановить запущенное им приложение также, как при истечении таймаута.
 
Terminate - принудительное завершение запущенной программы после истечения заданного в WaitTime периода. При WaitTime=0 данный параметр не имеет смысла и игнорируется. Логика работы: если прошло время WaitTime, Terminate=true и приложение еще работает, то оно принудительно завершается.
 
На заметку:
Если на момент запуска процесса работает AVZGuard, то процесс будет запущен как доверенный процесс и действие AVZGuard на него не будет распространяться.
 
Примеры:
 
begin
  ExecuteFile('notepad.exe', '', 1, 10000, true);
end.
 
В данном примере производится запуск блокнота, и ожидается его завершение. Если процесс отработает более десяти секунд, то он будет принудительно завершен.
Код возврата процесса, запущенного при помощи ExecuteFile можно узнать при помощи функции GetLastExitCode