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参数详解
-
FileName
-
类型:string
-
描述:指定要启动的应用程序的名称或路径。它可以是可执行文件 (.exe
) 的路径,也可以是系统路径中的可执行程序名称(如果在系统路径中)。
-
示例:"C:\\Program Files\\MyApp\\app.exe"
或 "notepad.exe"
。
-
Arguments
-
类型:string
-
描述:指定传递给程序的命令行参数。
-
示例:"/s /f"
, "-arg1 value1 -arg2 value2"
。
-
WorkingDirectory
-
类型:string
-
描述:指定进程启动时的工作目录。如果未指定,则使用当前进程的工作目录。
-
示例:"C:\\MyApp\\WorkingDirectory"
。
-
UseShellExecute
-
类型:bool
-
描述:确定是否使用操作系统外壳来启动进程。通常,如果为 true
,则可以启动一些非命令行应用程序(例如 .exe
、msi
等)。如果为 false
,则启动进程时不会通过外壳。
-
默认值:true
-
示例:false
用于启动命令行应用程序。
-
RedirectStandardOutput
-
类型:bool
-
描述:设置是否应重定向标准输出流(通常是控制台输出)。如果为 true
,你可以从进程读取输出。
-
默认值:false
-
示例:true
用于捕获控制台输出。
-
RedirectStandardError
-
类型:bool
-
描述:设置是否应重定向标准错误输出流。
-
默认值:false
-
示例:true
用于捕获错误输出。
-
RedirectStandardInput
-
类型:bool
-
描述:设置是否应重定向标准输入流。允许你将输入写入进程。
-
默认值:false
-
示例:true
用于向进程提供输入。
-
CreateNoWindow
-
类型:bool
-
描述:设置是否隐藏进程的窗口。设置为 true
时,不会显示任何窗口,通常用于后台进程。
-
默认值:false
-
示例:true
用于启动进程时不显示窗口。
-
WindowStyle
-
类型:ProcessWindowStyle
-
描述:设置进程窗口的样式。可以是以下之一:
-
ProcessWindowStyle.Normal
:窗口通常显示。
-
ProcessWindowStyle.Hidden
:隐藏窗口。
-
ProcessWindowStyle.Minimized
:窗口最小化。
-
ProcessWindowStyle.Maximized
:窗口最大化。
-
示例:ProcessWindowStyle.Minimized
用于启动时最小化窗口。
-
Environment
-
类型:IDictionary<string, string>
-
描述:获取一个集合,表示要为新进程设置的环境变量。可以添加、修改或删除环境变量。
-
示例:startInfo.Environment["PATH"] = "C:\\MyApp\\bin";
-
UserName
-
类型:string
-
描述:设置启动进程的用户名。适用于在指定用户身份下启动进程。
-
示例:"UserName"
-
Password
-
类型:SecureString
-
描述:设置启动进程的密码,通常和 UserName
一起使用。
-
示例:new SecureString()
-
Domain
-
类型:string
-
描述:指定进程运行时所需的域。适用于指定用户身份启动进程时,可能需要域名。
-
示例:"MYDOMAIN"
-
ErrorDialog
-
类型:bool
-
描述:指定是否应在发生错误时显示错误对话框。
-
默认值:false
-
示例:true
在启动进程失败时显示错误对话框。