Redmon redirect для приложения .NET Windows.Forms - PullRequest
1 голос
/ 15 апреля 2009

У меня есть интересная задача: написать программу, которая фиксирует входные данные программы Redmon В основном это виртуальный принтер, который перенаправляет вывод в программу.

Я установил Redmon и создал приложение winforms, чтобы перехватить вывод. Но я застрял здесь. Я проверил, что получает моя программа, и это ничего на уровне параметров (строка [] в основных аргументах пуста).

Redmon запускает мою программу, но затем останавливается. Думаю, мне следует как-то прочитать содержимое, которое оно отправляет в программу, но как?

1 Ответ

3 голосов
/ 15 апреля 2009

Я бы предположил, что 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);
    }
}

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

...