<< Click to Display Table of Contents >> Navigation: Проект в MasterSCADA 4D > Дерево библиотек > Библиотека BaseObjects > BaseObjects.ФБ.Системные > Запуск процессов > SysProcessCreate |
Функциональный блок SysProcessCreate служит для запуска различных процессов и выполнения команд операционной системы из проекта, работающего в среде исполнения. Например: копирования файлов, печати сохраненных отчетов и других задач.
Важно! Для возможности работы c ФБ SysProcessCreate в исполнительную систему должна входить опция MSRT4D-ProcessCreate. Данная опция включена в базовый функционал лицензий Professional и Enterprise.
Этот функциональный блок может использоваться как самостоятельно, вне программ, так и в составе любой программы.
Находится в библиотеке BaseObjects.
Вид в дереве |
Вид в редакторе FBD |
Вид в редакторе ST |
SysProcessCreate_1(Command:="chrome.exe", Args:="http://127.0.0.1:8043",Run:=Запустить); //(где: Запустить - это логический параметр, связанный с кнопкой без фиксации в окне). |
Входы и выходы ФБ:
Название |
Тип |
Назначение |
Входы |
||
Command |
STRING |
Задается имя исполняемого файла (может включать полный путь) или команды. Например, если вход принимает значение iexplore.exe, то в результате работы функционального блока откроется Internet Explorer. Если процесс запускается через bat-файл, то вход может принимать значение D:\print.bat. |
Args |
STRING |
Аргументы, которые могут быть использованы для запуска процесса или команды. |
Run |
BOOL |
По переднему фронту изменения значения на этом входе среда исполнения попытается запустить процесс, указанный на входе Command, используя строку аргументов, заданной на входе Args. |
Выходы |
||
Code |
DINT |
Выдается код ошибки (код ошибки зависит от выполняемой команды). |
Error |
STRING |
Выдается ошибка. |
Следует учитывать, что при использовании данного функционального блока могут возникнуть неисправности, не связанные с работой MasterSCADA 4D. Разработчик проекта берет на себя ответственность за возможные сбои в работе сторонних процессов.
Важно! Для непрерывных операций необходимо использовать ФБ SysProcessCreateAsync. В противном случае, пока выполняется команда, указанная в ФБ, другие задачи исполнятся не будут.
Для запуска GUI-приложений (например, Firefox) требуется указывать имя пользователя ОС, который работает в текущий момент. Для этого необходимо использовать команду su.
В этом случае на вход Command необходимо подать su -u [имя пользователя] [имя приложения], либо на вход Command подать su -u [имя пользователя], а на вход Args - [имя приложения].
Пример записи в ST: SysProcessCreate_1(Command:="su -u user firefox", Args:="http://127.0.0.1:8043",Run:=Запустить); //(где Запустить это логический параметр связанный с кнопкой без фиксации в окне.)