Запуск программ
Пожалуйста, ознакомьтесь с Правилами использования материалов на данном ресурсе
Оглавление
Описание
Экшен служит для запуска сторонних программ. Запускать можно как обычные десктопные программы (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.exe <тут_аргументы>
. Для демонстрации STD OUT запустим программу с аргументом -usage
(в ответ программа напишет базовую информацию о себе) и перенаправим STD OUT в переменную.
Записать STD ERR
Будет содержать в себе данные, если программа сообщит о какой-либо ошибке.
Пример:
повторим команду из предыдущего пункта, но сделаем ошибку в команде и напишем -usage22
На скриншоте видно, что в STD ERR попал текст ошибки, говорящий что был передан неверный аргумент или их было недостаточно. В то же время и в STD OUT тоже попали данные - программа подсказывает нам как ей правильно пользоваться.
Вы можете повторить команды описанные выше. Для этого надо установить 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
Пример №1. ImageMagick Все параметры жёстко прописаны
К сожалению все параметры запуска не поместились на скриншот
После выполнения данного экшена на рабочем столе появится файл result.gif
Пример №2. ImageMagick Параметры переданы в виде переменных
В данном примере путь к папке с исполняемым файлом был вынесен в переменную (например, шаблон может запускаться на разных компьютерах и на каждом может быть свой путь).
Все параметры тоже были вынесены в переменную (не обязательно было всё сохранять в одну переменную. Можно для каждого аргумента создать свою переменную и перечислить эти переменные в поле Параметры запуска)
Итоговый файл
result.gif
сохраняется в ту же директорию, в которой находится файл проекта. ({-Project.Directory-}
- системная переменная в которой хранится полный путь к директории текущего проекта)
Пример №3. Запуск 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