C#调用EXE文件实现传参和获取返回结果

首先,我们需要知道C#调用EXE文件实现传参和获取返回结果的基本流程。具体流程如下:

1.使用Process类启动外部EXE程序。

2.在ProcessStartInfo对象中设置使用的外部程序、参数和重定向标准输入输出等配置。

3.使用Process类的StandardInput属性向外部程序写入数据。

4.使用Process类的StandardOutput属性读取来自外部程序的输出。

以下是两个简单的示例:

示例1:调用cmd.exe执行命令并获取输出结果

// 创建ProcessStartInfo对象,设置要执行的命令和参数
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C dir";  // 执行dir命令
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.CreateNoWindow = true; 

// 创建Process对象并启动进程
Process process = new Process();
process.StartInfo = startInfo;
process.Start();

// 向cmd.exe输入数据
process.StandardInput.WriteLine("input command");
process.StandardInput.Flush();
process.StandardInput.Close();

// 读取cmd.exe输出
string output = process.StandardOutput.ReadToEnd();

// 打印输出结果
Console.WriteLine(output);

// 等待进程退出
process.WaitForExit();

示例2:调用自定义的EXE程序并传入参数


// 创建ProcessStartInfo对象,设置要执行的外部程序和参数
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "myexe.exe"; // 设置要执行的程序
startInfo.Arguments = "arg1 arg2 arg3"; // 设置传递给程序的参数

// 启动外部程序
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();

// 获取程序输出
string output = process.StandardOutput.ReadToEnd();
Console.Write(output);

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#调用EXE文件实现传参和获取返回结果 - Python技术站

(1)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • go micro微服务proto开发安装及使用规则

    下面我将详细讲解 “go micro微服务proto开发安装及使用规则” 的完整攻略。 什么是 go micro go-micro 是一套微服务框架,使用 Go 编程语言实现,简化了构建复杂分布式系统的过程。它封装了服务注册与发现、负载均衡、消息传递、服务治理、数据传输等基本功能,让开发人员可以更加专注于业务逻辑的实现。此外,go-micro 还支持多种协议…

    C# 2023年5月15日
    00
  • 解决Unity无限滚动复用列表的问题

    当使用 Unity 开发游戏时,经常需要在游戏中使用列表来显示大量信息。而为了优化性能,我们通常会使用无限滚动复用列表。但是,在实现无限滚动复用列表时,可能会遇到以下这些问题: 在滚动列表时,出现卡顿情况。 在滚动列表时,列表中的元素出现重复或错位现象。 在滚动到列表底部时,无法加载新的元素。 这些问题的出现是由于滚动列表的过程中,我们会涉及到对象池、缓存、…

    C# 2023年6月3日
    00
  • .NET中的属性用法分析

    .NET中的属性用法分析 属性是.NET框架中的一个关键特性,它提供了一种在运行时为对象附加元数据以及在对象上设置特定行为的机制。本文将深入介绍属性的用法分析。 属性的定义 属性定义与函数定义的核心区别在于,属性指定了用于获取或设置值的特定方法。 如下是一个示例: public class Person { private string name; publ…

    C# 2023年5月31日
    00
  • C#算法之冒泡排序、插入排序、选择排序

    C#算法之冒泡排序、插入排序、选择排序 在学习C#算法的过程中,冒泡排序、插入排序、选择排序是最基础且常用的排序算法之一。这些排序算法可以对数组进行排序,使其按照升序或降序排列。 本文将详细讲解这三种排序算法的原理和实现步骤,并提供两个示例说明。 冒泡排序 冒泡排序是一种比较简单的排序算法,其基本思想是:将相邻的两个元素进行比较,如果前一个元素比后一个元素大…

    C# 2023年6月8日
    00
  • PowerShell查看Windows功能选项的方法

    PowerShell查看Windows功能选项的方法 在PowerShell中,我们可以使用Get-WindowsOptionalFeature cmdlet命令来查看Windows功能选项。本文将提供详细的“PowerShell查看Windows功能选项的方法”的完整攻略,包括如何使用Get-WindowsOptionalFeature命令,以及两个示例。…

    C# 2023年5月15日
    00
  • c#3.0实现延迟赋值示例

    下面我详细讲解一下“C#3.0实现延迟赋值示例”的完整攻略。 什么是延迟赋值 延迟赋值就是指将变量的赋值操作推迟到该变量首次被访问时再执行。这种赋值方式可以有效地减少不必要的计算和内存开销,提高程序的运行效率。 C#3.0如何实现延迟赋值 在C#3.0中,可以使用lazy关键字和Lazy<T>类来实现延迟赋值。 当声明一个变量时,可以在变量前加上…

    C# 2023年6月1日
    00
  • mvc开启gzip压缩示例分享

    下面是关于MVC开启Gzip压缩的完整攻略: MVC开启Gzip压缩 什么是Gzip? Gzip是一种文件压缩格式,在网络传输中被广泛应用。GZip将传输的原始文本压缩成更小的数据,减少了网络传输数据量从而提升了网站的载入速度。 如何在MVC中开启Gzip压缩? 在MVC中开启Gzip压缩需要做如下几个步骤: 引入NuGet包 首先需要在项目中引入Micro…

    C# 2023年5月15日
    00
  • C#集合之集(set)的用法

    让我为您详细讲解一下“C#集合之集(set)的用法”。 什么是集(set)? 在C#中,集(set)是一种无序不重复元素的集合。集合是由哈希表实现的,所以集合中的元素是无序的。集合中的每个元素都是唯一的,这意味着同一个元素不会被添加到集合中两次。 集(set)的使用方法 创建集合并添加元素 使用HashSet<T>类可以创建一个集合,并向其中添加…

    C# 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部