2011-10-25 38 views
6

Tôi đang sử dụng thư viện bên ngoài (.dll), một số phương thức của nó (bao gồm các hàm tạo) ghi công cụ vào đầu ra tiêu chuẩn (bảng điều khiển a.k.a) vì nó được dự định sử dụng với các ứng dụng giao diện điều khiển. Tuy nhiên tôi đang cố gắng kết hợp nó vào các cửa sổ ứng dụng của tôi hình thức, vì vậy tôi muốn nắm bắt đầu ra này và hiển thị nó theo cách tôi thích. I E. trường văn bản "trạng thái" trong cửa sổ của tôi.Chụp nội dung của đầu ra tiêu chuẩn trong C#

Tất cả những gì tôi có thể tìm thấy là ProcessStartInfo.RedirectStandardOutput, mặc dù dường như nó không phù hợp với nhu cầu của tôi, vì nó được sử dụng với một ứng dụng bổ sung (.exe) trong các ví dụ. Tôi không thực hiện các ứng dụng bên ngoài, tôi chỉ sử dụng một thư viện dll.

Trả lời

7

Tạo một StringWriter, và đặt ra tiêu chuẩn với nó.

StringWriter stringw = new StringWriter(); 
Console.SetOut(stringw); 

Bây giờ, bất cứ điều gì in để giao diện điều khiển sẽ được chèn vào StringWriter, và bạn có thể nhận được nội dung của nó bất cứ lúc nào bằng cách gọi stringw.ToString() như vậy thì bạn có thể làm một cái gì đó giống như textBox1.AppendText(stringw.ToString()); (kể từ khi bạn nói rằng bạn đã có một Winform và đã có một tình trạng trường văn bản) để đặt nội dung của hộp văn bản của bạn.

2

Bạn có sử dụng phương thức Console.SetOut để bạn có đủ gần với những gì bạn đang theo dõi không?

Nó sẽ cung cấp cho bạn khả năng để có được văn bản bằng văn bản cho bàn điều khiển vào một dòng mà bạn có thể viết ra một nơi nào đó anyway.

http://msdn.microsoft.com/en-us/library/system.console.setout.aspx

Trích từ trên link:

Console.WriteLine("Hello World"); 
FileStream fs = new FileStream("Test.txt", FileMode.Create); 
// First, save the standard output. 
TextWriter tmp = Console.Out; 
StreamWriter sw = new StreamWriter(fs); 
Console.SetOut(sw); 
Console.WriteLine("Hello file"); 
Console.SetOut(tmp); 
Console.WriteLine("Hello World"); 
sw.Close(); 
Các vấn đề liên quan