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

ウィキペディアの記事から:

コンピュータ プログラミングでは、標準ストリームは、実行開始時にコンピュータ プログラムとその環境 (通常はテキスト ターミナル) との間で事前に接続された入力チャネルと出力チャネルです。3 つの I/O 接続は、標準入力 (stdin)、標準出力 (stdout)、および標準エラー (stderr) と呼ばれます。

Joe が述べたように、標準入出力に書き込まれる情報は通常、コンソール アプリケーション間でチェーン化されます。Windows アプリケーションに表示されるテキストは、通常、このパターンには従いません。ただし、3 つの標準ストリームを利用できますが、通常はそれらに書き込みません。

于 2012-06-13T00:46:25.733 に答える
2

入力出力とエラーの 3 つの標準ストリームがあります。それらは主に、コンソール プログラムによって相互に入力と出力を送信するために使用されます。メモ帳は GUI プログラムであり、標準出力と標準入力の概念は実際には対応していません。この場合の使用例はdir | fndstr hi 、コマンド dir がその出力を fndstr の標準入力に送信することです。

于 2012-06-13T00:47:32.520 に答える
1

標準出力ストリームは、主にコンソール出力用です。たとえば、Pythonの場合は、

print('hello world')

標準出力ストリーム(stdoutとも呼ばれます)に出力されます。

やりたいことを行うには、引数の場所を指定してメモ帳を開き、ユーザーにファイルを保存するように依頼してから、ユーザーが保存したファイルを読み取る必要があります。

于 2012-06-13T00:48:36.383 に答える