2012-06-13 2 views
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(); 
+6

StandardOutput - это то, что написано на консоли. Различные выходные потоки предназначены для программ командной строки. Этот метод не сможет захватить вывод Notepad. – Joe

+1

Кроме того, приложения Windows GUI не имеют «выход», как это, в любом случае. Что именно вы пытаетесь достичь? –

ответ

1

Существует три стандартных входных выхода и ошибка ввода. Они в основном используются консольными программами для отправки и отправки друг другу. Блокнот - это программа gui, а понятие стандартного и стандартного в действительности не отображается. Примером использования будет dir | fndstr hi, в этом случае команда dir отправляет свой вывод на стандартный вход fndstr.

+0

Незначительная коррекция: они в основном используются для приема ввода и отправки вывода, не обязательно «друг к другу». Печать на консоль и получение ввода с клавиатуры являются совершенно обычным использованием 'stdin' и' stdout'. –

3

Из Wikipedia статьи:

В компьютерном программировании, стандартные потоки preconnected вход и выходных каналов между компьютерной программой и ее окружением (как правило, текстовый терминал), когда она начинает выполнение. Три соединения ввода/вывода называются стандартными входами (stdin), стандартным выходом (stdout) и стандартной ошибкой (stderr).

Как упоминалось Джо, информация, записанная на стандартный вход и выход, обычно соединяется между консольными приложениями. Текст, отображаемый в приложениях Windows, обычно не соответствует этому шаблону, хотя у них есть 3 стандартных потока, доступных им, они обычно не записывают их.

1

Стандартный выходной поток в основном для вывода на консоль. Например, если в питона, вы

print('hello world') 

Он будет печатать на стандартный поток вывода (также называемый стандартный вывод).

Чтобы сделать то, что вы хотите сделать, вам нужно открыть блокнот с указанием местоположения в аргументах, попросить пользователя как-то сохранить файл, а затем прочитать файл, который пользователь сохранил.

Смежные вопросы