是否有可能以某种方式使用C#获取控制台输出(包括颜色)(P / Invoke,C ++ / CLI或'纯'C ++对我而言也很好)?
阅读控制台输出也很重要,该输出已在应用程序启动之前打印。
想象一下, 是否可以获取此类信息,是否可以使用UIAutomation或类似方法来分析控制台窗口?
我希望得到某种结果(虽然我可以进行实际处理并自行转换):
// Pseudo-code //
public struct CONSOLE_CHARACTER {
public uint xOffset;
public uint yOffset;
public char Character;
public ConsoleColor ForegroundColor;
public ConsoleColor BackgroundColor;
}
// Fetch the previous output including colors
CONSOLE_CHARACTER[] previous_output = Console.ReadCompleteOutput();
<小时/> 有些像这样的数据必须才能以某种方式访问,因为显卡必须像任何其他数据一样绘制控制台窗口,而user32 / gdi32-Libraries必须以某种方式获取此类数据...
编辑: this comment由IInspectable提供帮助,帮助我找到解决方案