ПроцессОс
| Стд::СредаИсполнения::ПроцессОс Базовые типы: Объект |
Объект для работы с внешними процессами.
Сравнение ссылочное
Конструкторы
ПроцессОс
| Перегрузка: ПроцессОс(КомандаЗапуска: Строка, Аргументы: ЧитаемыйМассив<Объект>, СоединитьПотокиОшибокИВывода: Булево = Истина) |
Создает процесс с указанной командой запуска КомандаЗапуска и признаком объединения потоков вывода и ошибок СоединитьПотокиОшибокИВывода. Созданный процесс не запускается.
ПроцессОс
| ПроцессОс(КомандаЗапуска: Строка, Аргументы: ЧитаемыйМассив<Объект>, СоединитьПотокиОшибокИВывода: Булево = Истина) |
Создает процесс с указанной командой запуска КомандаЗапуска, аргументами Аргументы и признаком объединения потоков вывода и ошибок СоединитьПотокиОшибокИВывода. Созданный процесс не запускается.
Свойства
ПотокиОшибокИВыводаСоединены
| ТолькоЧтение ПотокиОшибокИВыводаСоединены: Булево |
Определяет, соединены ли потоки ошибок и вывода:
Истина- ошибки пишутся в поток вывода.Ложь- ошибки пишутся в поток ошибок.
Методы
Живой
| Живой(): Булево |
Проверяет, жив ли запущенный процесс.
Запустить
| Запустить(Каталог: Строка? = Неопределено) |
Запускает созданный процесс или конвейер процессов. Каталог - рабочий каталог запускаемого и дочерних процессов.
ОжидатьЗавершения
| ОжидатьЗавершения(Длительность: Длительность): Булево |
Ожидает завершения выполнения одного из условий:
- внешний процесс завершился,
- прошло заданное количество секунд
Длительность(если задано).
Возвращает Ложь, если внешний процесс не завершился за указанное время Длительность.
Остановить
| Остановить() |
Останавливает созданный процесс.
ПередатьВыводВ
| ПередатьВыводВ(КомандаЗапуска: Строка, Аргументы: ЧитаемыйМассив<Объект>): ПроцессОс |
Добавляет новый процесс на основе команды КомандаЗапуска и аргументов Аргументы в конвейер (pipe). К процессу в конвейере будут применены те же настройки, что и к исходному ПроцессОс. Возвращает текущий экземпляр ПроцессОс, в котором выходной поток соответствует выходному потоку нового процесса.
Примеры
метод ПросмотретьПапкуИНайтиПодстроку(ПапкаДляПросмотра: Строка, Фильтр: Строка)
пер Процесс = новый ПроцессОс("cmd.exe", ["/c", "dir %ПапкаДляПросмотра"])
// Передадим вывод в команду поиска подстроки
Процесс.ПередатьВыводВ("cmd.exe", ["/c", "findstr " + Фильтр])
// Запустим конвейер
Процесс.Запустить()
;
ПолучитьPid
| ПолучитьPid(): Число? |
Возвращает идентификатор процесса в операционной системе, либо Неопределено, если получение PID’а невозможно.
ПолучитьКодВозврата
| ПолучитьКодВозврата(): Число? |
Возвращает код возврата от внешнего процесса. Код 0 считается нормальным завершением внешнего процесса.
ПолучитьПотокВвода
| ПолучитьПотокВвода(): ПотокЗаписи |
Чтобы процесс перестал ожидать входные данные, закройте полученный поток ввода.
Возвращает ПотокЗаписи для передачи входных данных в ПроцессОс.
Примеры
метод Grep(Вход: Строка, Фильтр: Строка): Строка
// Аналог команды grep в Windows. Требует входных данных
пер Процесс = новый ПроцессОс(cmd.exe", ["/c", "findstr %Фильтр"])
// Указать входные данные можно только после старта процесса
Процесс.Запустить()
пер Поток = Процесс.ПолучитьПотокВвода()
Поток.Записать(Вход)
// Даем понять, что входных данных процесс может больше не ожидать.
Поток.Закрыть()
возврат Процесс.ПолучитьПотокВывода().ПрочитатьКакТекст()
;
ПолучитьПотокВывода
| ПолучитьПотокВывода(): ПотокЧтения |
- Для передачи вывода одного процесса в другой используйте возможности конвейера (см. ПередатьВыводВ()).
- Не требует закрытия.
Возвращает выходной поток из внешнего процесса. Используется для получения результата от процесса. В поток по умолчанию также пишутся ошибки, произошедшие во время работы процесса.
ПолучитьПотокОшибок
| ПолучитьПотокОшибок(): ПотокЧтения |
Не требует закрытия.
Возвращает поток ошибок процесса. Если потоки ошибок и вывода соединены, будет возвращен пустой поток.