Предназначена для Windows и Linux. Разработана по технологии Native API в составе библиотеки VanessaExt.
На Linux реализованы Создать, Ждать, Прервать, ИдентификаторПроцесса,
КодВозврата, Активный и ВвестиДанные. Команда запускается через
/bin/sh -c, поэтому поддерживаются пайпы и перенаправления; m_pid — это
PID оболочки (для простой команды оболочка может заменить себя командой).
Процесс создаётся в собственной группе; Прервать отправляет SIGKILL группе
процессов, то есть завершает и дочерние процессы. Прервать ждёт фактического
завершения лидера (до 1 секунды) и только потом возвращает Истина;
повторный Создать после убитого процесса работает. Ждать опрашивает
состояние дочернего процесса и не конкурирует с reaper-потоком WindowsControl.
Повторный Создать при ещё активном процессе возвращает Ложь.
КодВозврата равен 259, пока процесс активен. Если процесс уже был собран
другим кодом и настоящий код возврата неизвестен, возвращается -1.
Параметр ОтображатьОкноКонвертора на Linux игнорируется.
&НаКлиенте
Перем БуферОбмена;
&НаКлиенте
Процедура ПодключениеВнешнейКомпонентыЗавершение(Подключение, ДополнительныеПараметры) Экспорт
БуферОбмена = Новый("AddIn." + ИдентификаторКомпоненты + ".ProcessControl");
КонецПроцедуры
- ИдентификаторПроцесса / ProcessId
- Активный / IsActive
- КодВозврата / ExitCode
- Создать / Create
- Ждать / Wait
- Прервать / Terminate
- ВвестиДанные / InputData
&НаКлиенте
Перем ИдентификаторКомпоненты, ПроцессЗаписи;
&НаКлиенте
Процедура НачатьЗапись(Команда)
КоманднаяСтрока = "ffmpeg -f gdigrab -framerate 30 -i desktop output.mp4";
ПроцессЗаписи = Новый("AddIn." + ИдентификаторКомпоненты + ".ProcessControl");
ПроцессЗаписи.Создать(КоманднаяСтрока, ОтображатьОкноКонвертора);
КонецПроцедуры
&НаКлиенте
Процедура ОстановитьЗапись(Команда)
ПроцессЗаписи.ВвестиДанные("q");
КонецПроцедуры