Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.12.2020
Сообщений: 233

Ожидание ввода у процесса

17.05.2024, 20:18. Показов 901. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть процесс, у которого перенаправлен stdin поток

C#
1
2
3
4
5
6
7
8
9
var processInfo = new ProcessStartInfo {
    FileName = path,
    Arguments = arguments,
    RedirectStandardOutput = outputAction == null ? false : true,
    RedirectStandardError = errorAction == null ? false : true,
    RedirectStandardInput = inputAction == null ? false : true,
    UseShellExecute = false,
    CreateNoWindow = true,
};
Как определить когда этому процессу необходимо отправить данные через stdin?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.05.2024, 20:18
Ответы с готовыми решениями:

Ожидание завершение процесса и созданных процессов процессом
Здравствуйте. Как можно сделать ожидание завершения не только запущенного процесса но прпоцесов запущенные процесом который я запускаю. ...

Ожидание запуска и завершения процесса для работы с потоками ввода
здравствуйте. есть программа на vb, которая при работе запускает другой процесс, чтобы затем передать ему данные через stdin. сейчас...

Ожидание конца процесса
Добрый день. Суть вопроса: Есть процесс, который запускает программу в консольном режиме с параметрами string cmd = "P0 -sSU...

10
Эксперт .NET
 Аватар для Rius
13137 / 7697 / 1677
Регистрация: 25.05.2015
Сообщений: 23,485
Записей в блоге: 14
17.05.2024, 20:35
Предполагаю, что перед ожиданием ввода правильная программа что-то напишет об этом в вывод.
0
0 / 0 / 0
Регистрация: 20.12.2020
Сообщений: 233
17.05.2024, 20:39  [ТС]
Rius, нет, мне нужно на программном уровне определять необходимость ввода, потому что нет возможности изменять прогу, которая будет запускаться
0
Эксперт .NET
 Аватар для Rius
13137 / 7697 / 1677
Регистрация: 25.05.2015
Сообщений: 23,485
Записей в блоге: 14
17.05.2024, 20:41
Перечитайте, пожалуйста, внимательно.
0
0 / 0 / 0
Регистрация: 20.12.2020
Сообщений: 233
17.05.2024, 20:43  [ТС]
Rius, тогда не очень понял что вы имели ввиду
0
Эксперт .NET
 Аватар для Rius
13137 / 7697 / 1677
Регистрация: 25.05.2015
Сообщений: 23,485
Записей в блоге: 14
17.05.2024, 20:44
Запускаете процесс, подключаетесь к его вводу и выводу/ошибкам.
Когда процесс напишет в вывод - "введи данные", отправляете их на ввод.
0
0 / 0 / 0
Регистрация: 20.12.2020
Сообщений: 233
17.05.2024, 20:49  [ТС]
Rius, повторюсь, я не знаю что выведет и введёт программа, и введёт ли она что в принципе, и изменять вывод я так же не могу
0
Эксперт .NET
 Аватар для Rius
13137 / 7697 / 1677
Регистрация: 25.05.2015
Сообщений: 23,485
Записей в блоге: 14
17.05.2024, 20:52
Так запустите её вручную и посмотрите.
Или это неизвестная заранее программа? Как называется?
0
0 / 0 / 0
Регистрация: 20.12.2020
Сообщений: 233
17.05.2024, 20:54  [ТС]
Rius, программа каждый раз меняется, поэтому я ничего о ней не знаю
0
Эксперт .NET
 Аватар для Rius
13137 / 7697 / 1677
Регистрация: 25.05.2015
Сообщений: 23,485
Записей в блоге: 14
17.05.2024, 21:02
Тогда всё плохо.

Попробуйте записать во входной поток всё, что может понадобиться, и надейтесь, что программа считает то, что ей нужно, по мере своей необходимости.

Добавлено через 5 минут
Смысл вот в этом:
1
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
18.05.2024, 00:29
Лучший ответ Сообщение было отмечено MicMaclaynd как решение

Решение

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

Собственно уже выше писали, что обычно просто пишут листинг всего что нужно, в надежде что программа корректно отработает, и не запросит в середине другую/дополнительную информацию. Для понимания, можете написать программу, которая скажем считывает 4 строки с задержкой в 2 секунды, а потом выводит скажем общее количество букв (или по группам). Вы такой программе можете сразу на старте задать файл в качестве ввода, где будет 4 строки, и всё отработает. Если в файле будет только 3 строки, то программа повиснет, в ожидании 4-ой. Если в файле будет 5 строк, то пятая просто проигнорируется (насколько помню). Т.е. время ввода не так критично, в отличии от понимания что вводить.

P.S. для меня несколько странным является вообще попытка работы с неизвестным вводом. Допустим у нас даже есть флаг, указывающий что ввод осуществим. Как понять что нужно вводить и в каком формате?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.05.2024, 00:29
Помогаю со студенческими работами здесь

Ожидание завершения дочернего процесса
Здравствуйте. Есть консольная программа, нужно завершить ее, только после завершения дочерней. У родительской программы есть...

Простой инсталлер, ожидание завершения процесса
Всем доброго. Пишу небольшой инсталлер, из которого надо установить два приложения (оба внешние, лежат в папке с exe-шником программы)....

Ожидание закрытия дочернего процесса calc
разбираюсь с процессами задача такая - написать программу, которая запускает N дочерних процессов калькуляторов calc (стандартный...

Ожидание запуска процесса и получение его пути
Помогите реализовать программу, которая будет ожидать calc.exe и, если этот процесс будет запущен, то вывести на экран путь к папке, в...

Ожидание ввода строки в richTextBox
Как в обработчике richTextBox сделать ожидание ввода текста? То есть функция begin_dir() заполняет richTextBox начальным текстом, потом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru