0

我的代码看起来或多或少类似于下面的代码,但它不会从我正在打开的应用程序(记事本)中检索文本。也许我错过了重点。有人可以解释什么是标准输出流,如果我想打开一个应用程序然后检索它显示的文本,它是否真的是我想要使用的?

ProcessStartInfo psi = new ProcessStartInfo("notepad.exe", "c:\\test.txt");
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;

Process p = new Process();
p.StartInfo = psi;
p.Start();

string s = p.StandardOutput.ReadToEnd();
4

3 回答 3

3

来自维基百科的文章:

在计算机编程中,标准流是计算机程序开始执行时与其环境(通常是文本终端)之间预先连接的输入和输出通道。这三个 I/O 连接称为标准输入 (stdin)、标准输出 (stdout) 和标准错误 (stderr)。

正如 Joe 所提到的,写入标准输入和输出的信息通常在控制台应用程序之间链接在一起。Windows 应用程序中显示的文本通常不遵循这种模式,尽管它们确实有 3 个可用的标准流,但它们通常不向它们写入。

于 2012-06-13T00:46:25.733 回答
2

有三个标准流输入输出和错误。它们主要被控制台程序用来相互发送输入和输出。记事本是一个 gui 程序,标准输出和标准输入的概念并没有真正映射。在这种情况下,一个使用示例是dir | fndstr hi 命令 dir 将其输出发送到 fndstr 的标准输入。

于 2012-06-13T00:47:32.520 回答
1

标准输出流主要用于控制台输出。例如,如果在 python 中,你可以

print('hello world')

它将打印到标准输出流(也称为标准输出)。

要执行您想做的事情,您需要打开记事本并在参数中包含一个位置,要求用户以某种方式保存文件,然后读取用户保存的文件。

于 2012-06-13T00:48:36.383 回答