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日

相关文章

  • Path类 操作文件类的实例

    Path类是Python中操作文件路径的工具类,可以用于文件路径相关的转换、拼接、判断、查询等操作。下面将详细讲解Path类的使用攻略,包括基本用法和进阶用法。 一、基本用法 导入Path类 from pathlib import Path 创建Path对象 # 在当前目录创建Path对象 p1 = Path(‘.’) # 在指定目录创建Path对象 p2 …

    C# 2023年6月1日
    00
  • c#用for语句输出一个三角形的方法

    下面就为您详细讲解一下,在C#中用for语句输出一个三角形的方法: 思路 首先,我们需要知道三角形的构成,通常由若干个等腰直角三角形拼接成的。那么,我们可以通过for循环嵌套的方式来输出若干个等腰直角三角形,最终构成一个完整的三角形。具体的思路如下: 外层循环控制等腰三角形的行数。 内层循环控制等腰三角形的列数。 输出符号根据行数和列数来判断输出的内容,可以…

    C# 2023年6月7日
    00
  • C#代码实现PDF文档操作类

    下面我将为您详细讲解如何实现C#代码操作PDF文档的完整攻略。本篇攻略的主要内容如下: 确定操作的PDF文档格式 选择操作PDF文档的第三方库 执行PDF文档操作 以下是具体的讲解: 1. 确定操作的PDF文档格式 在操作PDF文档之前,我们需要先明确需要操作的PDF文档的格式。PDF(Portable Document Format)是一种由Adobe公司…

    C# 2023年6月1日
    00
  • VC小技巧汇总之控件技巧

    VC小技巧汇总之控件技巧 简介 本篇攻略主要介绍VC小技巧汇总之控件技巧。在Windows程序编写中,控件是GUI界面中重要的元素之一。本篇攻略介绍了一些控件技巧,帮助开发者更好地使用控件。 控件技巧列表 以下是本篇攻略所涉及的控件技巧列表: 动态创建控件 在程序运行过程中动态创建控件,可以灵活地添加和移除控件。动态创建控件需要使用MFC控件类的Create…

    C# 2023年5月31日
    00
  • WPF利用RPC调用其他进程的方法详解

    WPF利用RPC调用其他进程的方法详解 WPF(Windows Presentation Foundation)是一种用于构建Windows桌面应用程序的技术。在WPF应用程序中,我们可以使用RPC(Remote Procedure Call)调用其他进程的方法。本文将详细讲解如何在WPF应用程序中使用RPC调用其他进程的方法,并提供两个示例。 1. 创建R…

    C# 2023年5月15日
    00
  • 利用Warensoft Stock Service编写高频交易软件

    利用Warensoft Stock Service编写高频交易软件需要具备一定的编程和交易知识。下面是一些步骤,可以帮助您开始: 1. 注册并开通Warensoft帐户 Warensoft是提供互联网股票交易服务的平台。首先,需要在Warensoft官网上注册一个帐户,并通过实名认证等方式完成开户流程。注册后,可以使用Warensoft Stock Serv…

    C# 2023年6月6日
    00
  • C#实现简单的loading提示控件实例代码

    下面是详细的讲解。 什么是loading提示控件 loading提示控件是一种在等待数据或操作完成时通知用户的界面元素。通常由一个旋转的图标和一段文本组成,可以自定义显示的文本内容和样式。在网页或软件开发中,经常会使用loading提示控件来提高用户体验。 C#实现loading提示控件的过程 创建一个自定义控件,在控件中添加一个PictureBox和一个L…

    C# 2023年5月15日
    00
  • .net(c#)中的new关键字详细介绍

    下面我来详细讲解一下在.NET(C#)中的new关键字的使用。 什么是new关键字 在面向对象的编程中,我们经常需要定义类及其成员。有时候,我们需要在一个派生类型中重新定义一个类的成员,这样我们就可以重新定义其行为,这时我们就可以使用new关键字。 关于new关键字的使用规则是:- 当我们使用new关键字声明一个成员时,它会隐藏基类的同名成员。- 当我们在一…

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