2012-06-13 91 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是寫入控制檯的內容。各種輸出流適用於命令行風格的程序。您將無法通過此方法捕獲記事本輸出。 – Joe

+1

另外,無論如何,Windows GUI應用程序沒有那樣的「輸出」。你究竟想要完成什麼? –

回答

1

有三個標準流輸入輸出和錯誤。它們主要由控制檯程序使用,以便相互發送。記事本是一個gui程序,標準的概念和標準並不真正映射。使用示例爲dir | fndstr hi,在這種情況下,命令dir將其輸出發送到fndstr的標準輸入。

+0

小修正:它們主要用於接收輸入和發送輸出,不一定是「彼此」。打印到控制檯並從鍵盤接收輸入是「stdin」和「stdout」的完美常見用法。 –

3

Wikipedia文章:

在計算機編程,標準流被預連接的輸入和一個計算機程序和其環境 (通常是文本終端)時,它開始執行之間 輸出通道。這三個I/O 連接稱爲標準輸入(stdin),標準輸出 (stdout)和標準錯誤(stderr)。

正如Joe提到的,寫入標準輸入輸出的信息通常在控制檯應用程序之間鏈接在一起。在Windows應用程序中顯示的文本通常不會遵循這種模式,儘管他們確實有3個標準流可供他們使用,但他們通常不會寫入它們。

1

標準輸出流主要用於控制檯輸出。例如,如果在Python中,你可以做

print('hello world') 

它會打印到標準輸出流(也稱爲stdout)。

做你想做的事,你需要在議論同一個位置,打開記事本,讓用戶保存文件不知何故,然後讀取用戶保存的文件。

相關問題