2013-06-22 25 views
1

我看到了幾種方式來捕獲已啓動的控制檯應用程序的輸出。但他們都是「單色」解決方案,例如FFMPEG可能會產生彩色輸出。如何捕捉顏色?Delphi:如何捕獲CONSOLE應用程序的COLORED輸出?

+0

我不知道你的問題在這裏。你試圖捕獲什麼輸出?什麼「開始申請」?什麼「捉色」甚至意味着什麼?請[編輯]您的問題以提供更多細節並使其更具體。現在,它可能會很快關閉。 –

+0

ups,是的,我忘了說我在談論「控制檯」應用程序 –

+0

您的意思是當ANSI.sys加載時由轉義序列產生的顏色輸出,如在舊的DOS時代(http://www.pcxt-micro。 com/ansi.html,不確定這在現代控制檯Windows中是否可行)?你或許可以在正常輸出的同時捕捉轉義序列,但我不確定這是否有用。您必須解釋捕獲的字符流中的轉義序列。這是很多工作,這是否有用取決於你打算如何處理它。 –

回答

2

您必須將所有控制檯輸出函數(例如,WriteConsoleOutput;請參閱MSDN Library中的列表)訪問進程的屏幕緩衝區,然後將截獲的輸出通過共享內存或管。 AFAIK,沒有其他方式可以訪問另一個應用程序的控制檯輸出句柄。

相關問題