(2025)Unity运行中打开外部exe文件并传参

Unity打包后的软件直接打开指定路径的exe文件,配合上文提到的局域网Socket,可以实现实时控制子程序开关以及数据监听和传输。

应用场景:展馆大屏无触屏功能,故程序需要Pad完全控制,并支持切换其他程序以及根据Pad选项传参。

静态方法代码如下

using System.Diagnostics;

public static Process ProjectOpen(ProcessStartInfo startInfo)
{
    try
    {
        var externalProcess = Process.Start(startInfo);
        return externalProcess;
    }
    catch (Exception ex)
    {
        return null;
    }
}

使用方法

var renderProcess = ProjectOpen(new ProcessStartInfo()
{
            //参数和启动项
            FileName = "cmd.exe",
            Arguments = "/c echo Hello World",  // 执行命令行命令
            RedirectStandardOutput = true,      // 重定向输出
            UseShellExecute = false,            // 禁用外壳
            CreateNoWindow = true              // 不显示窗口
});

ProcessStartInfo参数详解

  1. FileName

    1. 类型string

    2. 描述:指定要启动的应用程序的名称或路径。它可以是可执行文件 (.exe) 的路径,也可以是系统路径中的可执行程序名称(如果在系统路径中)。

    3. 示例"C:\\Program Files\\MyApp\\app.exe""notepad.exe"

  2. Arguments

    1. 类型string

    2. 描述:指定传递给程序的命令行参数。

    3. 示例"/s /f", "-arg1 value1 -arg2 value2"

  3. WorkingDirectory

    1. 类型string

    2. 描述:指定进程启动时的工作目录。如果未指定,则使用当前进程的工作目录。

    3. 示例"C:\\MyApp\\WorkingDirectory"

  4. UseShellExecute

    1. 类型bool

    2. 描述:确定是否使用操作系统外壳来启动进程。通常,如果为 true,则可以启动一些非命令行应用程序(例如 .exemsi 等)。如果为 false,则启动进程时不会通过外壳。

    3. 默认值true

    4. 示例false 用于启动命令行应用程序。

  5. RedirectStandardOutput

    1. 类型bool

    2. 描述:设置是否应重定向标准输出流(通常是控制台输出)。如果为 true,你可以从进程读取输出。

    3. 默认值false

    4. 示例true 用于捕获控制台输出。

  6. RedirectStandardError

    1. 类型bool

    2. 描述:设置是否应重定向标准错误输出流。

    3. 默认值false

    4. 示例true 用于捕获错误输出。

  7. RedirectStandardInput

    1. 类型bool

    2. 描述:设置是否应重定向标准输入流。允许你将输入写入进程。

    3. 默认值false

    4. 示例true 用于向进程提供输入。

  8. CreateNoWindow

    1. 类型bool

    2. 描述:设置是否隐藏进程的窗口。设置为 true 时,不会显示任何窗口,通常用于后台进程。

    3. 默认值false

    4. 示例true 用于启动进程时不显示窗口。

  9. WindowStyle

    1. 类型ProcessWindowStyle

    2. 描述:设置进程窗口的样式。可以是以下之一:

      1. ProcessWindowStyle.Normal:窗口通常显示。

      2. ProcessWindowStyle.Hidden:隐藏窗口。

      3. ProcessWindowStyle.Minimized:窗口最小化。

      4. ProcessWindowStyle.Maximized:窗口最大化。

    3. 示例ProcessWindowStyle.Minimized 用于启动时最小化窗口。

  10. Environment

    1. 类型IDictionary<string, string>

    2. 描述:获取一个集合,表示要为新进程设置的环境变量。可以添加、修改或删除环境变量。

    3. 示例startInfo.Environment["PATH"] = "C:\\MyApp\\bin";

  11. UserName

    1. 类型string

    2. 描述:设置启动进程的用户名。适用于在指定用户身份下启动进程。

    3. 示例"UserName"

  12. Password

    1. 类型SecureString

    2. 描述:设置启动进程的密码,通常和 UserName 一起使用。

    3. 示例new SecureString()

  13. Domain

    1. 类型string

    2. 描述:指定进程运行时所需的域。适用于指定用户身份启动进程时,可能需要域名。

    3. 示例"MYDOMAIN"

  14. ErrorDialog

    1. 类型bool

    2. 描述:指定是否应在发生错误时显示错误对话框。

    3. 默认值false

    4. 示例true 在启动进程失败时显示错误对话框。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值