Описание
Экшен служит для запуска сторонних программ. Запускать можно как обычные десктопные программы (Notepad, WinRar, Paint), так и консольные утилиты (ffmpeg, ImageMagick). Есть возможность передачи параметров запуска.
Как добавить действие в проект?
Через контекстное меню Добавить действие → Свой код → Запуск программы
...
Либо воспользуйтесь умным поиском.
Где это можно применить?
Чаще всего используется для запуска консольных утилит. Например:
ImageMagick - набор программ (консольных утилит) для чтения и редактирования файлов множества графических форматов.
FFmpeg - набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах
запуск скриптов на Python и других языках программирования.
Запуск любых других приложений
...
Как работать с экшеном?
...
Исполняемый файл - полный путь к файлу, который надо запустить (кликнув по кнопке “Выбора файлов” (выделена синим квадратом) откроется стандартный диалог поиска файлов на компьютере)
Если файл по указанному не будет найден, то экшен завершится с ошибкой
Можно использовать макросы переменных
Если каталог выполняемой программы находится в переменной среды PATH, то можно указывать не полный путь к файлу, а только его название (
notepad.exe или
calc.exe)
Параметры запуска - это дополнительные команды, которые передаются запускаемой программе. У каждой программы свои параметры запуска.
Например запуск нового окна браузера Chrome с URL https://zennolab.com будет выглядеть следующим образом:
При запуске консольных утилит в данной строке передаются аргументы.
Можно использовать макросы переменных
Таймаут - удобно использовать когда Вы точно знаете сколько будет выполняться программа. Если вызванная программа не завершит работу после указанного количества секунд, то экшен завершится с ошибкой
Можно указывать дробное значение.
Это поведение можно отключить, описано чуть ниже
Не показывать окно процесса - При включении данной опции запускаемая программа не будет отображена.
Не ждать завершения работы - При включении этой настройки Таймаут выполнения будет игнорироваться и экшен не будет ждать пока программа закончит работу.
Записать EXIT CODE - код возврата с которым завершилась вызываемая программа. Обычно при нормальном завершении работы программы возвращают 0 (ноль). Если возвращено что-то другое, то, возможно, программа завершилась с ошибкой. Чтоб понять, что означает тот или иной код, стоит вбить в поиск запрос
название_программы exit code код_возврата
, пример -ffmpeg exit code 137
Записать STD OUT - это стандартный поток вывода. Другими словами, всё что программа пишет в окно консоли (если это не сообщение об ошибке (-ах)) является STD OUT
при установке ImageMagick программа добавляет путь к своей папке в переменную среды PATH и уже нет необходимости писать полный путь к исполняемому файлу, можно написать
magick <тут_аргументы>
. Для демонстрации STD OUT запустим программу с аргументом-usage
(в ответ программа напишет базовую информацию о себе) и перенаправим STD OUT в переменную.
Записать STD ERR - будет содержать в себе данные, если программа сообщит о какой-либо ошибке.
для примера повторим команду из предыдущего пункта, но сделаем ошибку в команде и напишем
-usage22
На скриншоте видно, что в STD ERR попал текст ошибки, говорящий что был передан неверный аргумент или их было недостаточно. В то же время и в STD OUT тоже попали данные - программа подсказывает нам как ей правильно пользоваться.
Info |
---|
Вы можете повторить команды описанные выше. Для этого надо установить ImageMagick, после открыть окно консоли ( |
...
Пример использования
Рассмотрим несколько примеров на основе ImageMagick.
Цель: создать изображение размером 600 на 600 пикселей, со светло голубым фоном, с надписью “ZennoPoster” (синим цветом), шрифт - Arial, размер шрифта - 72. Результат сохраним в файл по пути C:\Users\user\Desktop\result.gif рядом с шаблоном. Команда будет выглядеть следующим образом (convert - одна из утилит входящих в состав ImageMagick. На Вашем компьютере путь к исполняемому файлу и рабочему столу может отличаться):
C:\Program Files\ImageMagick-7.0.10-Q16\convert.exe -size 600x600 -background lightblue -gravity Center -fill blue -font Arial -pointsize 72 label:ZennoPoster C:\Users\user\Desktop\result.gif
Info |
---|
Для подробностей по поводу того или иного аргумента используйте Вашу любимую поисковую систему. Это выходит за рамки данной справки. |
Note |
---|
Для корректной работы команды в cmd.exe необходимо путь к исполняемому файлу взять в кавычки - |
Пример №1. ImageMagick Все параметры жёстко прописаны
...
К сожалению все параметры запуска не поместились на скриншот
После выполнения данного экшена на рабочем столе появится файл result.gif
...
Пример №2. ImageMagick Параметры переданы в виде переменных
...
В данном примере путь к папке с исполняемым файлом был вынесен в переменную (например, шаблон может запускаться на разных компьютерах и на каждом может быть свой путь).
Все параметры тоже были вынесены в переменную (не обязательно было всё сохранять в одну переменную. Можно для каждого аргумента создать свою переменную и перечислить эти переменные в поле Параметры запуска)
Итоговый файл
result.gif
сохраняется в ту же директорию, в которой находится файл проекта. ({-Project.Directory-}
- системная переменная в которой хранится полный путь к директории текущего проекта)
Note |
---|
Проект должен быть сохранён при использовании |
Пример №3. Запуск Python скрипта
Note |
---|
Для работы данного примера в системе должен быть установлен Python. |
Иногда, при поиске в интернете решения той или иной задачи можно найти скрипты написанные на разных языках программирования, которые делают именно то, что Вам нужно. Можно конечно полностью переписать код скрипта на C# и запустить с помощью экшена Свой C# код. Или же запустить скрипт с помощью экшена Запуск программ и воспользоваться результатом его работы. Последний вариант и будет рассмотрен, на основе языка программирования Python.
Есть скрипт по пути C:\ZP\my_sript.py
, на входе принимает два числа и умножает их друг на друга, ответ возвращается в консоль (в Вашем случае скрипт может генерировать изображение, текст; либо это может быть нейросеть, которая разгадывает капчу; в общем что угодно).
...
В качестве исполняемого файла указываем
C:\Users\user\AppData\Local\Programs\Python\Python38-32\python.exe
(на Вашем компьютере путь может отличаться).В параметрах запуска первым делом идёт путь к скрипту (
C:\ZP\my_sript.py
), далее два аргумента (12 11).
После запуска данного экшена в переменную result запишется результат работы - 132.
Вот как выглядит запуск того же скрипта в cmd.exe
...