[英]Capturing the effects of SetConsoleTextAttribute when redirected through a Pipe?
我已將使用CreateProcess
生成的子進程的stdout
重定向到管道。 效果很好,但據我所知,沒有有關顏色變化的信息。 子進程正在使用SetConsoleTextAttribute
更改文本顏色-是否可以通過管道檢測到該顏色,如果可以,如何進行檢測?
我最終將輸出顯示在RichEdit
控件中,並且我想盡可能捕獲顏色信息。
這是XP和Vista上Win32 API的C語言。
您可能需要使用在此處找到的ReadConsoleOutput(和/或相關的): http : //msdn.microsoft.com/zh-cn/library/ms682073 (VS.85) .aspx 。
希望能有所幫助。
可能有解決方法...它很舊,沒用過!
轉義序列在這里是標准的。 這是在控制台中添加對ANSI.SYS的支持的方法。 這是來自Microsoft的有關如何執行此操作的官方知識庫。
例如:
printf("\x1b[33;43Yellow on Blue\x1b[0\n");
現在,解析\\x1b[
之后的位,33是黃色前景,43是藍色背景,然后查找相關顏色並將其設置在RichTextBox中。
注意: \\x1b[0
關閉屬性。
編輯:這可能不是最佳解決方案,因為它適用於XP或更高版本下的舊版NTVDM的16位DOS command.com。 但是,但是,我在這里找到了另一個指向“ ansicon ”的鏈接,該鏈接用於具有ANSI支持的純cmd.exe 32位控制台。
希望這對您有所幫助,湯姆,謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.