新进程完成后保持控制台窗口打开

2024-03-29

我目前有一部分代码可以创建一个新进程并从 shell 执行它。

Process p = new Process();
...
p.Start();
p.WaitForExit();

这使得窗口在进程运行时保持打开状态,这很棒。不过,我也想把窗户打开after完成查看潜在消息。有没有办法做到这一点?


更容易捕获输出 http://msdn.microsoft.com/en-us/library/system.diagnostics.process.beginoutputreadline(v=vs.110).aspx来自两个标准输出 http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput(v=vs.110).aspx标准误差 http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standarderror(v=vs.110).aspx,将每个输出存储在 StringBuilder 中,并在该过程完成时使用该结果。

var sb = new StringBuilder();

Process p = new Process();

// redirect the output
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;

// hookup the eventhandlers to capture the data that is received
p.OutputDataReceived += (sender, args) => sb.AppendLine(args.Data);
p.ErrorDataReceived += (sender, args) => sb.AppendLine(args.Data);

// direct start
p.StartInfo.UseShellExecute=false;

p.Start();
// start our event pumps
p.BeginOutputReadLine();
p.BeginErrorReadLine();

// until we are done
p.WaitForExit();

// do whatever you need with the content of sb.ToString();

您可以在中添加额外的格式sb.AppendLine区分标准输出和错误输出的语句,如下所示:sb.AppendLine("ERR: {0}", args.Data);

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

新进程完成后保持控制台窗口打开 的相关文章

  • InvalidOperationException - 对象当前正在其他地方使用 - 红十字

    我有一个 C 桌面应用程序 其中我连续创建的一个线程从源 实际上是一台数码相机 获取图像并将其放在 GUI 中的面板 panel Image img 上 这必须是另一个线程 如它是控件的代码隐藏 该应用程序可以工作 但在某些机器上 我会在随
  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • 使用 std::packaged_task/std::exception_ptr 时,线程清理程序报告数据争用

    我遇到了线程清理程序 TSan 的一些问题 抱怨某些生产代码中的数据争用 其中 std packaged task 通过将它们包装在 std function 中而移交给调度程序线程 对于这个问题 我简化了它在生产中的作用 同时触发 TSa
  • 在 C++ 中使用 matlab 结构(matlab 函数调用的返回值)(由 matlab 编译器生成的库)

    你好 我有一个相当简单的 matlab 函数 例如 function MYSTRUCT myfunc MYSTRUCT prop1 test MYSTRUCT prop2 foo MYSTRUCT prop3 42 end 我用 matla
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 使用 C# 读取 Soap 消息

  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 如果没有抽象成员,基类是否应该标记为抽象?

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

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock

随机推荐

  • Apache2中可以有两个密码文件吗?

    我可以在 apache2 sites enabled 000 default 配置文件中包含两个 AuthUserFile 指令吗
  • Google App Engine“搜索”的测试床存根

    我正在尝试使用开发应用程序服务器在 Python 中测试 Google App Engine 的新全文搜索功能 是否有存根search https developers google com appengine docs python se
  • Spark:“无法使用 UnspecifiedFrame。这应该在分析过程中进行转换。请提交错误报告”

    Spark 2 3 0 与 Scala 2 11 我正在尝试编写一个自定义聚合器并在每个窗口函数上运行它这些文档 https spark apache org docs latest sql programming guide html t
  • Google Guava 供应商示例

    请用合适的例子解释Supplier in Guava 接口的使用 The Supplier接口只是一个返回值的无参数函数的抽象 它是一个获取对象的某个或多个实例的方法 因为它很通用 所以可以用来做很多事情 贾里德解释了如何Multimaps
  • 如何设置 Heroku Postgresql 的日志记录级别?

    将 Heroku 与 Postgresql 插件结合使用 在查看我的日志后 似乎 postgresql 正在记录每个 单个 事务 我知道您可以通过执行类似的操作来设置日志级别 https www postgresql org docs 9
  • 字体和颜色 - #region

    是否可以更改 region 和 endregion 的字体颜色 我在以下位置找不到这个元素extras options fonts and colors 它在这里 TOOLS gt Options gt Environment gt Fon
  • csv-parse 解析的对象的第一个属性不可访问

    我正在使用以下内容解析 csv 文件csv 解析 https csv js org parse userID sysID 20 50 30 71 但是 在返回的对象上 无法访问从第一列创建的属性userID 这是我的代码 async fun
  • 改造:将对象列表反序列化为不同类型

    开发 Android 应用程序 我正在使用改造来得到我的回应 目前我已经制作了一个 POJO 模型类 其中包含所有类型的字段 实际上它们有更多的字段和自己的方法 所以我在这里简化了它们很多 代码来自Client class OkHttpCl
  • 使用 R TM 包查找 2 和 3 个单词短语

    我正在尝试找到一个代码 该代码实际上可以在 R 文本挖掘包中找到最常用的两个和三个单词短语 也许还有另一个我不知道的包 我一直在尝试使用标记器 但似乎没有运气 如果您过去处理过类似的情况 您可以发布经过测试且实际有效的代码吗 太感谢了 您可
  • 1.9.1 的 ruby​​ ping

    我想在我的 ruby 代码中 ping 一个站点 发现 net ping 是一个很好的库 不幸的是 当我尝试 gem install net ping 时 出现以下错误 C gt gem 安装 net ping错误 安装 net ping
  • MVVM 符合 WPF 应用程序中的本地化

    如何使用 MVVM 模式本地化 WPF 应用程序 我真的很想以 正确 的方式去做 我当前的方法是使用 resx 资源文件来本地化我的应用程序 我将它们包含在我的 xaml 代码中 xmlns localization clr namespa
  • asp.net 网站中的 Quartz.net 设置

    我刚刚将quartz net dll 添加到我的bin 中并启动了我的示例 如何使用基于时间的quartz net 调用C 方法 using System using System Collections Generic using Sys
  • 开始后取消/停止 jquery fadeOut

    我有一个非常简单的页面 当用户单击页面上的特定条目时 该页面会显示状态更新 这一切工作正常 第一次点击更新id sts 如果输出正确 6 秒后这种现象就会消失 然而 虽然它会淡出 但如果用户单击另一个链接 DIV 会使用新文本进行更新 但它
  • Symfony2 动态/依赖形式

    我有一个包含 3 个依赖字段的表单 制造商 gt 制造商产品组 gt 制造商产品系列 所以我想选择一个制造商 基于制造商的产品组和基于产品组的产品系列 有一个 CookBook Entry 关于如何处理此类动态表单 它很容易为Manufac
  • 手动滚动到锚点时更改 url?

    默认情况下 如果我的网站中有锚点 则当我单击链接 即 www mysite com anchor 时 地址栏上的 URL 会发生更改 当我滚动到某个锚点时 是否可以立即更改地址栏中的 URL 或者有一个包含多个锚点的长文档 当我点击新的锚点
  • 分裂蜂群图

    如何按组分割蜂群图 类似于 使用 ggplot2 分割小提琴图 https stackoverflow com questions 35717353 split violin plot with ggplot2 但我想得到的不是密度图 而是
  • 全屏模式下的 ChromeDriver

    我正在尝试将 F11 发送到 ChromeDriver 但它没有响应 当我按 F11 时 Chrome 就会进入全屏模式 当我通过 ChromeDriver 发送 F11 时 却没有 这对于 ChromeDriver 中的任何 F 键都是相
  • 字典 <> 中的条目有限制吗?

    我有大约 3000 个不同的文件需要在游戏过程中的不同时间进行组织和检索 我创建了自己的变量结构 我正在考虑创建一本 词典 在我的应用程序开始时 只需在游戏开始之前加载我的所有文件 我想知道性能 包含这么多条目的字典会导致我的应用程序变慢吗
  • 使用反射从 Visual Studio(32 位)中的 T4 模板中分析 64 位 DLL

    我想使用反射从 T4 模板中分析 DLL 以便我可以根据反射分析的结果生成代码 我知道 EnvDTE 将是一个更好的选择 但由于多种原因 这在我的情况下是不可能的 反射的问题是 DLL 是 64 位 DLL 如果我在 T4 模板中加载它 我
  • 新进程完成后保持控制台窗口打开

    我目前有一部分代码可以创建一个新进程并从 shell 执行它 Process p new Process p Start p WaitForExit 这使得窗口在进程运行时保持打开状态 这很棒 不过 我也想把窗户打开after完成查看潜在消