博客
关于我
C#执行EXE文件与输出消息的提取
阅读量:339 次
发布时间:2019-03-04

本文共 1111 字,大约阅读时间需要 3 分钟。

在C# WPF环境下调用命令行程序,本文将详细说明如何通过Process类实现进程管理和参数传递。

1. Process类实例声明

首先,我们声明并初始化一个Process类实例:

Process p = new Process();

2. 设置进程参数

接下来,配置进程的启动信息,确保输入输出重定向:

p.StartInfo.CreateNoWindow = true;    // 不创建新窗口p.StartInfo.UseShellExecute = false;  // 禁用Shell启动方式p.StartInfo.RedirectStandardInput = true; // 重定向标准输入p.StartInfo.RedirectStandardOutput = true; // 重定向标准输出p.StartInfo.RedirectStandardError = true; // 重定向错误输出p.StartInfo.FileName = "cmd.exe"; // 指定使用cmd.exe

3. 启动进程

调用Start方法启动进程:

p.Start();

4. 模拟输入

通过标准输入管道向cmd.exe传递指令和参数:

string command = "avrdude -C avrdude -v -p atmega32u4 -c avr109 -P " + portName + " -b 57600 -D -U flash:w:node.hex:i";p.StandardInput.WriteLine(command + " & exit");p.StandardInput.AutoFlush = true; // 确保输入及时处理p.StandardInput.Close(); // 关闭输入管道

5. 获取输出

读取进程的标准输出和错误信息:

string output = p.StandardOutput.ReadToEnd();string error = p.StandardError.ReadToEnd();p.WaitForExit(1000); // 等待进程最大1000ms后退出,防止超时p.Close(); // 关闭进程

注意事项

  • 确保在调用Process类前注册mscorlib namespace:using System.Diagnostics;
  • 如果需要处理进程输出,可参考WaitForExit方法或事件手册
  • 建议在实际应用中根据需要调整等待时间,避免死锁

通过以上步骤,可以在C# WPF项目中安全地调用命令行程序,并灵活管理进程输入输出。

转载地址:http://xqyh.baihongyu.com/

你可能感兴趣的文章
Openlayers高级交互(16/20):两个多边形的交集、差集、并集处理
查看>>
Openlayers高级交互(17/20):通过坐标显示多边形,计算出最大幅宽
查看>>
Openlayers高级交互(19/20): 地图上点击某处,列表中显示对应位置
查看>>
Openlayers高级交互(8/20):选取feature,平移feature
查看>>
openlayers:圆孔相机根据卫星经度、纬度、高度、半径比例推算绘制地面的拍摄的区域
查看>>
OpenLDAP(2.4.3x)服务器搭建及配置说明
查看>>
OpenLDAP编译安装及配置
查看>>
OpenMCU(一):STM32F407 FreeRTOS移植
查看>>
OpenMCU(三):STM32F103 FreeRTOS移植
查看>>
OpenMCU(二):GD32E23xx FreeRTOS移植
查看>>
OpenMetadata 命令执行漏洞复现(CVE-2024-28255)
查看>>
OpenMMLab | S4模型详解:应对长序列建模的有效方法
查看>>
OpenMMLab | 【全网首发】Llama 3 微调项目实践与教程(XTuner 版)
查看>>
OpenMMLab | 面向多样应用需求,书生·浦语2.5开源超轻量、高性能多种参数版本
查看>>
OpenMV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
OpenObserve云原生可观测平台本地Docker部署与远程访问实战教程
查看>>
openoffice使用总结001---版本匹配问题unknown document format for file: E:\apache-tomcat-8.5.23\webapps\ZcnsDms\
查看>>
OpenPPL PPQ量化(4):计算图的切分和调度 源码剖析
查看>>
OpenPPL PPQ量化(5):执行引擎 源码剖析
查看>>
openpyxl 模块的使用
查看>>