Redmon redirect для приложения.NET Windows.Forms
У меня есть интересная задача: написать программу, которая захватывает ввод от программы под названием Redmon. В основном это виртуальный принтер, который перенаправляет вывод в программу.
Я установил Redmon и создал приложение winforms, чтобы поймать вывод. Но я застрял здесь. Я проверил, что получает моя программа, и это ничего на уровне параметров (строка [] в основных аргументах пуста).
Redmon запускает мою программу, но затем останавливается. Думаю, мне следует как-то прочитать содержимое, которое оно отправляет в программу, но как?
1 ответ
Я бы предположил, что Redmon передает поток в stdin - в этом случае вам придется читать из входного потока - либо через Console.In (если он основан на символах), либо Console.OpenStandardInput (для доступа к необработанному двоичному потоку).
В качестве тривиального примера того, что читает из стандартного ввода (читает текстовые строки, обращая каждую):
static void Main() {
WriteReversedLines(Console.In);
}
static void WriteReversedLines(TextReader reader) {
string line;
while ((line = reader.ReadLine()) != null) {
char[] chars = line.ToCharArray();
Array.Reverse(chars);
Console.WriteLine(chars);
}
}
Очевидно, что нужно обрабатывать двоичные данные немного по-другому, но концептуально это похоже.