Страницы

Поиск по вопросам

среда, 17 июля 2019 г.

Получение потоков ввода вывода другого процесса

Допустим мы получили пул процессов которые именуют себя conhost
var list = Process.GetProcessesByName("conhost").GroupBy(_x => _x.Id).ToDictionary(_x => _x.Key, _x => _x);
conhost инстанцируется для каждой копии какого либо консольного приложения Windows для предоставления потоков ввода и вывода (Если это не так поправьте) Так вот мне необходимо "слушать" что пишет и читает каждая консоль - как это сагрегировать я сам решу. Но проблема в том что я не могу добиться доступа к потокам ввода и вывода.
Есть предположение что это решается нативом или Winapi (склонен больше к winapi)
Решение делать свой собственный дочерний процесс меня не устраивает. Мне необходимо слушать пул процессов. А точнее получить доступ к их потокам ввода и вывода.


Ответ

Отвечаю на свой собственный вопрос. Всем кто интересовался этим же советую прочитать данную статью : Windows 7 / Windows Server 2008 R2: Console Host
По идее, ничего в мире, что невозможно решить - нет. Но решение данного вопроса ведет в сторону хака, что конечно же нельзя обсуждать на stackoverflow.

Комментариев нет:

Отправить комментарий