1

我有一个有趣的任务:编写一个程序来捕获来自名为Redmon的程序的输入。它基本上是一个将输出重定向到程序的虚拟打印机。

我安装了 Redmon 并创建了一个 winforms 应用程序来捕获输出。但我被困在这里。我检查了我的程序收到了什么,它在参数级别上什么都没有(主参数上的字符串 [] 是空的)。

Redmon 启动我的程序,但随后它停止了。我想我应该以某种方式阅读它发送给程序的内容,但是如何?

4

1 回答 1

3

我假设 Redmon 流到标准输入 - 在这种情况下,您必须从输入流中读取 - 通过 Console.In(如果它是基于字符的)或 Console.OpenStandardInput(用于原始二进制流访问)。

作为从 stdin 读取的内容的一个简单示例(它读取文本行,每行反转):

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

显然,您需要稍微不同地处理二进制数据,但在概念上它是相似的。

于 2009-04-15T11:19:02.267 回答