将彩色控制台输出捕获到 WPF 应用程序中

2023-11-25

如同这个问题,除了 WPF 应用程序中包含的控制台程序会生成彩色输出,因此如果我能够捕获颜色和文本,那就太好了。

这是我的第一个 WPF 程序,我不知道如何查找/修改正确的控件,目前我只是使用一个 TextBox,它可以工作,但只能捕获纯文本。

更新:我尝试使用 RichTextBox:

richTextBox.Document.Blocks.Clear();
richTextBox.Document.Blocks.Add(new Paragraph(new Run(process.StandardOutput.ReadToEnd())));

可惜它只显示纯文本。


如果我理解您想要正确执行的操作,您希望屏幕抓取在控制台上运行的旧版应用程序,并通过以下方式在 WPF 应用程序中的控件中获取其控制台输出:yourprocess.StandardOutput.

来自控制台的颜色数据(和格式)将为 ANSI。这将以控制字符的形式显示在重定向的控制台文本中,该文本将显示为扩展 ASCII 字符和数字。您将需要一个 ANSI 解释器控件将其转换回颜色数据。我知道存在几种应该能够轻松适应的 ANSI 终端控件 -this one代码项目上的能够处理 ANSI 格式,但它是一个完整的 ANSI 终端,旨在处理连接 - 您可能需要将代码的终端部分替换为可以显示返回的字符串的内容yourprocess.StandarOutput.ReadToEnd().

以下是 ANSI/VT100 控制代码如果您想编写自己的格式化程序,您将需要它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将彩色控制台输出捕获到 WPF 应用程序中 的相关文章

  • ClickOnce 应用程序错误:部署和应用程序没有匹配的安全区域

    我在 IE 中使用 FireFox 和 Chrome 的 ClickOnce 应用程序时遇到问题 它工作正常 异常的详细信息是 PLATFORM VERSION INFO Windows 6 1 7600 0 Win32NT Common
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • System.IO.FileNotFoundException:找不到网络路径。在 Windows 7 上使用 DirectoryEntry 对象时出现异常

    我正在尝试使用 DirectoryEntry 对象连接到远程 Windows 7 计算机 这是我的代码 DirectoryEntry obDirEntry new DirectoryEntry WinNT hostName hostName

随机推荐

  • 更新集合中的大量记录

    我有一个名为TimeSheet现在有几千条记录 这最终将在一年内增加到 3 亿条记录 在这个集合中 我嵌入了另一个名为的集合中的一些字段Department大多数情况下不会得到任何更新 只有很少的记录会被更新 我所说的很少是指一年中只有一两
  • 通过将标记保持在中心来移动地图

    每当我移动地图时 标记也会随之移动 但我想通过保持地图中心的标记不变来移动地图 我怎样才能做到这一点 为什么不将标记添加为视图 将其覆盖在地图顶部
  • removeEventlistener 无法按预期使用箭头函数和参数[重复]

    这个问题在这里已经有答案了 我有一个可以容纳多个可编辑内容的页面 我想在编辑内容时触发某种检查事件 我实现此目的的代码如下所示 Find all editable elements let allEditableElements docum
  • 如何让 Spinner 项目在被单击时以全宽显示在其自身下方,就像在 G+ 应用程序上一样

    背景 Google 有一个类似旋转器的视图 显示很多项目 但所有项目都显示在其下方 我需要在我自己的旋转器中模仿这一点 这是我被告知的 但截至最近 材料设计指南说 here Spinner 应该将其项目放在自身之上 这就是支持库为它所做的事
  • 为什么在构造标准中使用前缀增量被认为比后缀增量更好

    我最近安装了格子风格插件Eclipse并且个人认为非常棒 但它给我的警告之一有点晦涩难懂 确切的警告是 使用 不允许 这是关于postfix的 在某些行中 例如 for int i 0 i lt SOMETHING i 好的 我知道fore
  • C# Windows7/Vista风格ListView

    when I create a ListView in details view in VS2008 it creates a rather old looking listview It doesnt have any of the fa
  • 用 C 或 C++ 创建目录

    如何用C代码创建目录 除了fork和使用mkdir的方法 有类似 dirent h 的东西吗 dirent h 只允许读取目录 不使用外部库 Use the mkdir 函数 include
  • 我可以将一个方法作为java中另一个方法的参数传递吗?

    我正在尝试测量几种方法的执行时间 所以我想创建一个方法而不是多次重复相同的代码 这是我的代码 private void MeasureExecutionTime Method m startTime System nanoTime try
  • Android:如何构建像 Android UI 页面上显示的选项卡

    因此 android 不遗余力地构建了这个漂亮的 UI 指南供每个人使用 但我没有看到任何地方显示如何构建这些元素的代码示例 可以在此处找到选项卡的 UI 指南 http developer android com design build
  • char数组的内存分配

    假设你有 struct Person char name int age int height int weight 如果你这样做 struct Person who malloc sizeof struct Person C 如何知道要分
  • 我可以在 Entity Framework Core 中的连接数据库上触发事件吗?

    我有一个 DbContext 可以访问我的 Postgresql DB 但是当连接会话与 DB 启动时 我需要运行一个小 SQL 命令 我需要为每次交互执行此操作 更具体地说 它是一个用于设置记录用户名的会话变量的函数 可以在 EF Cor
  • 如何在不注册的情况下使用 Win32 中的 .Net 程序集?

    我想从 Delphi Win32 应用程序动态加载和使用用 C 创建的 Net 程序集 我的类和接口被标记为 ComVisible 但我想避免注册程序集 这可能吗 附 我在这里找到了链接文本关于该主题的另一个很好的讨论 但它更多地围绕托管
  • 自定义元素的绑定上下文 - 它到底是什么,如何访问父虚拟机

    我在文档中找不到答案 所以我在这里提问 传递给的绑定上下文到底是什么bind自定义元素的方法 它简单地等于路由器当前活动的 ViewModel 至少 这是我到目前为止所发现的 为什么它不是元素的父级 就 DOM 而言 VM 用这个代码 cu
  • 如何弯曲CGMutablePath?

    具有以下形状 我想知道你如何让它像这样弯曲 也类似 我假设所有的圆 线都被打包成一个CGMutablePath 然后对它应用某种曲线 圆弧或四边形曲线 尽管我很难复制它 有谁知道如何做到这一点 在第一个示例中 您从具有多个闭合子路径的路径开
  • 用于处理文件路径的 Qt 类[重复]

    这个问题在这里已经有答案了 可能的重复 Qt 相当于 PathAppend Qt 中有处理文件路径的类吗 特别是我正在寻找像 NET 的 Path Combine 这样的东西 我知道 boost filesystem 中有一个 但我想知道
  • Scala 开关在成功匹配后继续匹配下一个案例

    我该如何在 scala switch 语句中执行一个 case 块后开始执行另一个 case 块 在java中 没有中断的情况 switch step case 0 do something case 1 do something more
  • .dll 文件无法访问

    我正在尝试将 dll 添加到我的项目中 当我 添加引用 并尝试添加它时 它告诉我 无法添加对 的引用 请确保该文件 可访问 并且它是有效的程序集或 COM 组件 顺便说一句 我正在尝试添加 g729 dll 我怎样才能添加dll 你必须re
  • 垂直进度条

    VS 2005 SP3 我曾多次使用进度条 但是 我需要一个垂直的 但是 我找不到任何可以旋转它的属性 进度条是否始终处于水平位置且无法更改 非常感谢 尝试这个 public class VerticalProgressBar Progre
  • PHP 和 MySQL 之间的周数差异

    我有以下查询 SELECT COUNT WEEK date YEAR date FROM myTable GROUP ON YEAR date WEEK date 假设它产生以下结果 32 33 2012 43 34 2012 39 35
  • 将彩色控制台输出捕获到 WPF 应用程序中

    如同这个问题 除了 WPF 应用程序中包含的控制台程序会生成彩色输出 因此如果我能够捕获颜色和文本 那就太好了 这是我的第一个 WPF 程序 我不知道如何查找 修改正确的控件 目前我只是使用一个 TextBox 它可以工作 但只能捕获纯文本