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);
    }
}

Очевидно, что нужно обрабатывать двоичные данные немного по-другому, но концептуально это похоже.

Другие вопросы по тегам