function  ExecuteFile

function  ExecuteFile

Previous pageReturn to chapter overviewNext page

function  ExecuteFile(FileName, Params : string;

                     Mode : integer; WaitTime : integer;

                     Terminate : boolean) : boolean;

 

Производит выполнение указанного файла.

 

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