C# 使用动态参数调用可执行文件

C# 使用动态参数调用可执行文件,c#,unity3d,C#,Unity3d,我正在调用Unity项目中的一个可执行文件。可执行文件包含一个与计时器一起工作的函数(预定义的时间,例如10秒)。我想要的是稍微更改一下功能,而不是使用计时器运行,以便为.exe提供一个布尔标志作为输入,我可以使用该标志继续执行或停止可执行文件。然而,要这样做,我必须给.exe一个动态输入。有可能这样做吗?如果这是可能的,我如何做到这一点,而不花费太多的系统资源 编辑: void record(){ string[] args = { path, dataDir, Date+"\\",

我正在调用Unity项目中的一个可执行文件。可执行文件包含一个与计时器一起工作的函数(预定义的时间,例如10秒)。我想要的是稍微更改一下功能,而不是使用计时器运行,以便为.exe提供一个布尔标志作为输入,我可以使用该标志继续执行或停止可执行文件。然而,要这样做,我必须给.exe一个动态输入。有可能这样做吗?如果这是可能的,我如何做到这一点,而不花费太多的系统资源

编辑:

void record(){

    string[] args = { path, dataDir, Date+"\\", name, surname };
    System.Diagnostics.Process.Start(execDir, String.Join(" ", args));  

}
OnGUI代码:

if (GUI.Button (new Rect (150,250, 100, 50), "RECORD")) {

    record();
}

if (GUI.Button (new Rect (270,250, 100, 50), "STOP")) {

        stop_recording();

}

此函数记录调用一个可执行文件,该文件将若干内容写入二进制文件。我还有一个停止按钮,我想在其中添加标志。当按下按钮时,标志将为true,我想将该值作为参数解析到execDir可执行文件中。

我想您要做的是将命令传递到正在运行的控制台应用程序,对吗

首先,这完全取决于您正在运行的可执行文件。如果可执行文件除了一个简单的“time_to_run”命令行参数之外不公开任何控件,或者每次运行时都启动一个新实例,并且您没有此可执行文件的源或无法编译它,那么您就没有选择了。但是,如果您可以访问源代码或自己编写,您可以做很多事情

应用程序允许以各种方式进行外部控制

  • 应用程序可以从流中读取控制信息(stdin、内存映射文件、命名管道等)-如果您可以访问此可执行文件的源代码,则可以使其读取这些源中的任何一个,并解析命令并执行它
  • 使用跨进程同步对象(如)停止/启动特定功能。这些活动的名称可以事先商定
  • 使控制台应用程序成为一个应用程序。虽然这在技术上与2(仅允许自身的一个实例)+1(将任何新命令传递给“旧”应用程序)相同,但它允许简单使用,无需任何特殊编程
  • 使用
  • 使用

  • 你挑吧!:)

    你能在此基础上展开一点并发布你的代码吗?那时我的可执行文件处于运行模式。