Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Описание

Экшен служит для запуска сторонних программ. Запускать можно как обычные десктопные программы (Notepad, WinRar, Paint), так и консольные утилиты (ffmpeg, ImageMagick). Есть возможность передачи параметров запуска.

Как добавить действие в проект?

Через контекстное меню Добавить действиеСвой кодЗапуск программы

...

Либо воспользуйтесь умным поиском.

Где это можно применить?

  • Чаще всего используется для запуска консольных утилит. Например:

    • ImageMagick - набор программ (консольных утилит) для чтения и редактирования файлов множества графических форматов.

    • FFmpeg - набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах

    • запуск скриптов на Python и других языках программирования.

  • Запуск любых других приложений

...

Как работать с экшеном?

...

  1. Исполняемый файл - полный путь к файлу, который надо запустить (кликнув по кнопке “Выбора файлов” (выделена синим квадратом) откроется стандартный диалог поиска файлов на компьютере)

    1. Если файл по указанному не будет найден, то экшен завершится с ошибкой

    2. Можно использовать макросы переменных

    3. Если каталог выполняемой программы находится в переменной среды PATH, то можно указывать не полный путь к файлу, а только его название (notepad.exe или calc.exe)

  2. Параметры запуска - это дополнительные команды, которые передаются запускаемой программе. У каждой программы свои параметры запуска.

    1. Например запуск нового окна браузера Chrome с URL https://zennolab.com будет выглядеть следующим образом:

      Image Added

    2. При запуске консольных утилит в данной строке передаются аргументы.

    3. Можно использовать макросы переменных

  3. Таймаут - удобно использовать когда Вы точно знаете сколько будет выполняться программа. Если вызванная программа не завершит работу после указанного количества секунд, то экшен завершится с ошибкой

    1. Можно указывать дробное значение.

      Image Added

      Это поведение можно отключить, описано чуть ниже

  4. Не показывать окно процесса - При включении данной опции запускаемая программа не будет отображена.

  5. Не ждать завершения работы - При включении этой настройки Таймаут выполнения будет игнорироваться и экшен не будет ждать пока программа закончит работу.

  6. Записать EXIT CODE - код возврата с которым завершилась вызываемая программа. Обычно при нормальном завершении работы программы возвращают 0 (ноль). Если возвращено что-то другое, то, возможно, программа завершилась с ошибкой. Чтоб понять, что означает тот или иной код, стоит вбить в поиск запрос название_программы exit code код_возврата, пример - ffmpeg exit code 137

  7. Записать STD OUT - это стандартный поток вывода. Другими словами, всё что программа пишет в окно консоли (если это не сообщение об ошибке (-ах)) является STD OUT

    1. при установке ImageMagick программа добавляет путь к своей папке в переменную среды PATH и уже нет необходимости писать полный путь к исполняемому файлу, можно написать magick <тут_аргументы>. Для демонстрации STD OUT запустим программу с аргументом -usage(в ответ программа напишет базовую информацию о себе) и перенаправим STD OUT в переменную.

      Image Added

  8. Записать STD ERR - будет содержать в себе данные, если программа сообщит о какой-либо ошибке.

    1. для примера повторим команду из предыдущего пункта, но сделаем ошибку в команде и напишем -usage22

      Image Added

      На скриншоте видно, что в STD ERR попал текст ошибки, говорящий что был передан неверный аргумент или их было недостаточно. В то же время и в STD OUT тоже попали данные - программа подсказывает нам как ей правильно пользоваться.

Info

Вы можете повторить команды описанные выше. Для этого надо установить ImageMagick, после открыть окно консоли (Win+R → вводим cmd.exe → нажимаем Enter) и в нём вводим команды magick-usage и magick-usage22

...

Пример использования

Рассмотрим несколько примеров на основе 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 необходимо путь к исполняемому файлу взять в кавычки - "C:\Program Files\ImageMagick-7.0.10-Q16\convert.exe"

Пример №1. ImageMagick Все параметры жёстко прописаны

...

К сожалению все параметры запуска не поместились на скриншот

После выполнения данного экшена на рабочем столе появится файл result.gif

...

Пример №2. ImageMagick Параметры переданы в виде переменных

...

  • В данном примере путь к папке с исполняемым файлом был вынесен в переменную (например, шаблон может запускаться на разных компьютерах и на каждом может быть свой путь).

  • Все параметры тоже были вынесены в переменную (не обязательно было всё сохранять в одну переменную. Можно для каждого аргумента создать свою переменную и перечислить эти переменные в поле Параметры запуска)

  • Итоговый файл result.gif сохраняется в ту же директорию, в которой находится файл проекта. ({-Project.Directory-}- системная переменная в которой хранится полный путь к директории текущего проекта)

Note

Проект должен быть сохранён при использовании {-Project.Directory-} . Т.к. в противном случае данная переменная будет пустой.

Пример №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

...

Полезные ссылки