C# 程序启动另外一个exe的时候传参数
一、传递一个参数
using System.Diagnostics;public void StartAnotherProcessWithArguments()
{// 创建ProcessStartInfo实例ProcessStartInfo startInfo = new ProcessStartInfo();// 设置要执行的程序路径startInfo.FileName = @"C:\Path\To\Your\Executable.exe";// 设置传递给程序的参数startInfo.Arguments = @"C:\Some\Other\Path"; // 这里填入作为参数传递的路径// 设置其他选项,如是否使用Shell执行(这里假设不需要)startInfo.UseShellExecute = false;startInfo.CreateNoWindow = true; // 如果不需要显示窗口// 创建并启动进程using (Process process = new Process()){process.StartInfo = startInfo;process.Start();}
}// 接收参数的被启动程序的Main方法示例:
using System;class YourProgram
{static void Main(string[] args){if (args.Length > 0){string receivedPath = args[0]; // 获取第一个参数,假设这就是我们传递的路径Console.WriteLine($"Received path: {receivedPath}");// 在这里处理接收到的路径// ...}else{Console.WriteLine("No argument was passed.");}}
}
二、传递多个参数
启动另一个exe并需要传递多个参数时,可以将所有参数作为单个字符串,在参数之间用空格分隔,然后设置到ProcessStartInfo.Arguments
属性中。
using System.Diagnostics;public void StartAnotherProcessWithArguments()
{// 创建ProcessStartInfo实例ProcessStartInfo startInfo = new ProcessStartInfo();// 设置要执行的程序路径startInfo.FileName = @"C:\Path\To\Your\Executable.exe";// 设置传递给程序的参数// 假设我们有两个参数,一个是路径,另一个是选项string arg1 = @"C:\Some\Path";string arg2 = "OptionValue";startInfo.Arguments = $"{arg1} {arg2}";// 设置其他选项,如是否使用Shell执行(这里假设不需要)startInfo.UseShellExecute = false;startInfo.CreateNoWindow = true; // 如果不需要显示窗口// 创建并启动进程using (Process process = new Process()){process.StartInfo = startInfo;process.Start();}
}// 接收参数的被启动程序的Main方法示例:
static void Main(string[] args)
{// 参数会被解析为字符串数组// args[0] 应该是 "C:\Some\Path"// args[1] 应该是 "OptionValue"Console.WriteLine($"参数数量: {args.Length}");for (int i = 0; i < args.Length; i++){Console.WriteLine($"参数{i}: {args[i]}");}// 根据参数进行相应操作...
}