C#启动外部程序的几种常用方法汇总

C#启动外部程序的几种常用方法汇总

在C#开发过程中启动外部程序是一个比较常见的功能需求,下面介绍几种常用的启动外部程序的方法。

使用Process.Start方法启动应用程序

Process.Start 方法可以启动指定路径的应用程序,并可以向该应用程序传递参数。代码示例:

using System.Diagnostics;

Process.Start("notepad.exe", "test.txt");

上面的代码启动notepad.exe应用程序,并打开test.txt文件。

使用ShellExecuteEx方法启动应用程序

ShellExecuteEx 函数可以启动任何可执行文件,并可以在启动过程中传递命令行参数。代码示例:

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

//定义ShellExecuteInfo结构体
[StructLayout(LayoutKind.Sequential)]
public struct ShellExecuteInfo
{
    public int cbSize;
    public uint fMask;
    public IntPtr hwnd;
    public string lpVerb;
    public string lpFile;
    public string lpParameters;
    public string lpDirectory;
    public int nShow;
    public IntPtr hInstApp;
    public IntPtr lpIDList;
    public string lpClasName;
    public IntPtr hkeyClass;
    public uint dwHotKey;
    public IntPtr hIcon;
    public IntPtr hProcess;
}

public class Win32
{
    [DllImport("shell32.dll", CharSet = CharSet.Auto)]
    public static extern bool ShellExecuteEx(ref ShellExecuteInfo lpExecInfo);

    public const uint SEE_MASK_NOASYNC = 0x00000100;
    public const uint SEE_MASK_NOCLOSEPROCESS = 0x00000040;
}

//启动应用程序的方法
public bool Start(string fileName, string arguments = "")
{
    ShellExecuteInfo sei = new ShellExecuteInfo();
    sei.cbSize = Marshal.SizeOf(sei);
    sei.lpFile = fileName;
    sei.lpParameters = arguments;
    sei.nShow = 1;
    sei.fMask = Win32.SEE_MASK_NOASYNC | Win32.SEE_MASK_NOCLOSEPROCESS;
    return Win32.ShellExecuteEx(ref sei);
}

上面的代码启动了某个应用程序,并传递了命令行参数。

总结

使用 Process.Start方法和 ShellExecuteEx 方法均可用于启动外部应用程序,具体选择哪一种方式需要根据具体情况来选择。如果需要在启动过程中传递参数或者需要对应用程序进行更多控制,则建议使用 ShellExecuteEx 方法。

示例代码可在 GitHub 上获取。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#启动外部程序的几种常用方法汇总 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • c# Async streams的使用解析

    C# Async Streams的使用解析 在C# 8.0中,新增了Async Streams的特性,它提供了一种方便异步枚举的方法。本文将介绍Async Streams的使用方式以及示例说明。 Async Streams的使用方式 使用Async Streams的第一步是要在方法的返回类型前面加上async和IAsyncEnumerable<T&gt…

    C# 2023年6月3日
    00
  • asp.net一些很酷很实用的.Net技巧第2/2页

    标题:ASP.NET技巧攻略——更高效的开发方式 引言 ASP.NET作为Microsoft公司推出的基于.NET框架的Web应用程序开发平台,是目前比较流行的一种开发方式。随着前端技术的发展,我们也需要加强对ASP.NET技巧的掌握,以提升开发效率。本文将介绍一些ASP.NET高效开发技巧,希望能够对开发者有所帮助。 1. 使用MVC模式 MVC模式(Mo…

    C# 2023年6月3日
    00
  • c# 网络编程之tcp

    C# 网络编程之TCP TCP是传输控制协议,是一种无连接的、可靠的、基于字节流的传输协议,它能够在网络上确保数据的可靠传输。在C#/.NET中,我们可以使用System.Net.Sockets命名空间下的TcpClient和TcpListener类来实现TCP网络编程。 TCP客户端 连接服务器 要建立一个TCP连接,需要指定服务器的IP地址和端口号,并使…

    C# 2023年5月31日
    00
  • vs 中C#项目读取JSON配置文件的方法

    下面我来详细讲解在 VS 中 C# 项目读取 JSON 配置文件的方法。 一、准备工作 在讲解具体方法前,我们需要先进行准备工作: 首先需要确保你的项目中已经包含了 Newtonsoft.Json 的 NuGet 包,否则,请右键项目选择“管理 NuGet 包”来安装该包。 其次需要准备一个 JSON 配置文件作为示例,这里以以下内容为例: { "…

    C# 2023年5月31日
    00
  • C#中发送邮件代码

    让我们来详细讲解一下C#中发送邮件代码的完整攻略吧。 1.准备工作 在C#中发送邮件,需要使用到SmtpClient类和MailMessage类,它们位于命名空间System.Net.Mail中,所以需要先在代码中导入该命名空间。 using System.Net.Mail; 2.发送邮件 2.1 简单邮件 下面我们通过一个简单的例子来演示如何使用C#发送一…

    C# 2023年6月7日
    00
  • C# MeasureString测量字符串函数的使用方法

    下面是详细讲解 “C# MeasureString 测量字符串函数的使用方法”的攻略。 什么是 MeasureString 函数 MeasureString 函数是 C# 中 System.Drawing.Graphics 类中的一个方法,用于测量字符串的尺寸大小。它的方法声明如下: public SizeF MeasureString(string tex…

    C# 2023年6月7日
    00
  • C#实现复制数据库 C#将A数据库数据转到B数据库

    介绍 本文将为大家详细讲解如何利用C#语言实现数据库的复制,即将A数据库数据转移到B数据库中。 步骤 1.创建控制台程序 首先,我们需要创建一个控制台应用程序,命名为“CopyDatabase”。 2.引入相关命名空间 在编写代码之前,我们需要引入一些命名空间,包括System.Data.SqlClient和System.Configuration。 usi…

    C# 2023年6月1日
    00
  • ASP.NET Core使用EF创建模型(必需和可选属性、最大长度、并发标记、阴影属性)

    在 ASP.NET Core 中,可以使用 Entity Framework (EF) 来创建模型。EF 是一个 ORM 框架,可以将数据库中的表映射到 C# 类中。以下是 ASP.NET Core 中使用 EF 创建模型的完整攻略: 步骤一:安装 EF 在使用 EF 前,需要在 ASP.NET Core 项目中安装 EF。可以使用 NuGet 包管理器或者…

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