SysExecServer

From SunFlurry wiki
Jump to: navigation, search
  SysExecServer (Функции среды, системные функции базы данных)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число
Визуальность:Нет

Функция производит запуск приложения с параметрами в командной строке на стороне сервера, разбор командной строки не производится. Пользователь должен обладать административными правами для использования этой функции. Также нужно понимать, что запуск с флагом ожидания завершения (второй аргумент) приведет к "зависшей" сессии на сервере, если приложение не будет завершено. Этой функцией следует пользоваться в исключительных обстоятельствах и только когда поведение запускаемого приложения хорошо известно заранее.

Синтаксис

SysExecServer(<Командная строка исполнения (STRING)>,<Не возвращаться до завершения (INT)>=0):<Код, возвращенный приложением (INT)>

Аргументы

  • <Командная строка исполнения (STRING)> - Строка с путем к приложению, его наименованием и параметрами исполнения, если необходимо. В данной строке возможно использование следующий шаблонов:
    • Chr(1)+"1"+Chr(1) -- шаблон будет заменен на полный путь к каталогу БД на сервере без завершающего знака \.
    • Chr(1)+"2"+Chr(1) -- шаблон будет заменен на полный путь к каталогу Windows на сервере без завершающего знака \.
    • Chr(1)+"3"+Chr(1) -- шаблон будет заменен на полный путь к каталогу временных файлов на сервере без завершающего знака \.
  • <Не возвращаться до завершения (INT)> - (необязательный аргумент) Аргумент задает режим ожидания окончания выполнения приложения. По умолчанию (0), функция не будет ожидать окончания выполнения приложения.

Возвращаемое значение

Возвращает целое число, зависящее от режима исполнения:

  • В режиме ожидания окончания исполнения приложения, число соответствует коду, который возвратило приложение при выходе.
  • В режиме, когда функция возвращается без ожидания окончания исполнения приложения, число соответствует коду ошибки операционной системы (0 -- приложение запущено без ошибок)

Примеры

//Получение результата исполнения systeminfo.exe в виде текста в файле Temp\res.txt
SysExecServer("cmd.exe /c systeminfo.exe >"+chr(1)+"1"+chr(1)+"\Temp\res.txt",1);
//Вывод файла в лог (для кириллицы OEM)
Message(FileToString("Temp\res.txt",866));
//Удаление файла
File.DeleteFile("Temp\res.txt");