ProcessStartInfo 类

前言

ProcessStartInfo 是 System.Diagnostics 命名空间下的一个类,用于 配置新进程(如启动外部程序)的参数(如可执行文件路径、命令行参数、工作目录等)。它是 Process.Start() 方法的核心参数,比直接传递字符串命令更灵活和安全。

作用:

启动进程时精细控制(如设置参数、环境变量、工作目录)。

隐藏/显示窗口(后台执行或显示GUI)。

重定向输入/输出(与子进程交互)。

以不同用户身份运行(需配合用户名和密码)。

常用属性

FileName:要执行的程序路径(如 "notepad.exe" 或 "python")。

Arguments:传递给程序的命令行参数(如 "/arg1 value1")。

WorkingDirectory:进程的工作目录(默认当前目录)。

UseShellExecute:是否通过系统Shell启动(默认true,若需重定向输入输出需设为false)。

RedirectStandardInput/Output/Error:是否重定向标准输入/输出/错误(需UseShellExecute=false)。

CreateNoWindow:是否隐藏窗口(默认false)。

WindowStyle:窗口状态(Normal, Hidden, Minimized, Maximized)。

Verb:特殊操作(如 "runas" 以管理员身份运行)。

EnvironmentVariables:设置进程的环境变量。

使用方法

使用方式1:构造时直接设置

using System.Diagnostics;



ProcessStartInfo startInfo = new ProcessStartInfo

{

    FileName = "notepad.exe",

    WindowStyle = ProcessWindowStyle.Maximized  // 窗口最大化

};

Process.Start(startInfo);

使用方式2:调用

using System.Diagnostics;



ProcessStartInfo processInfo = new ProcessStartInfo();

processInfo.UseShellExecute = true;

processInfo.FileName = "notepad.exe";

Process.Start(startInfo);

案例

例1:启动一个程序

using System.Diagnostics;



var startInfo = new ProcessStartInfo

{

    FileName = "notepad.exe",

    Arguments = "C:\\test.txt",  // 打开指定文件

    WorkingDirectory = "C:\\",   // 设置工作目录

    WindowStyle = ProcessWindowStyle.Maximized  // 窗口最大化

};

Process.Start(startInfo);

例2:隐藏窗口并执行命令

var startInfo = new ProcessStartInfo

{

    FileName = "cmd.exe",

    Arguments = "/c dir",        // 执行`dir`命令

    UseShellExecute = false,

    CreateNoWindow = true        // 不显示窗口

};

Process.Start(startInfo);

例3:以管理员身份运行

var startInfo = new ProcessStartInfo

{

    FileName = "powershell.exe",

    Verb = "runas",              // 请求管理员权限

    Arguments = "Restart-Service -Name 'MySQL'"

};

Process.Start(startInfo);        // 会弹出UAC确认对话框

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值