在进程启动后将参数传递给它

时间:2014-05-04 00:39:20

标签: c# java jar

有没有办法启动Process参数然后在调用之后,将参数传递给它(并读取输出)?

    Process process
    void CalledOnStart()
    {
        process = new Process();
        process.StartInfo.UseShellExecute = true;
        process.StartInfo.FileName = "cmd.exe"; //or anything, really
        process.Start();
    }

    void UserInput(string input)
    {
        process.passArgument(input); //does this exist?
    }

由于

2 个答案:

答案 0 :(得分:0)

要在调用时将参数传递给Process,您应该使用Start方法执行此操作,例如:

Process.Start("someArg");

如果稍后传递它,当它已经运行时,我建议使用Named-Pipes Stream作为例子。

来自MSDN:

  

命名管道提供管道服务器之间的进程间通信   和一个或多个管道客户端。

答案 1 :(得分:0)

不,没有通用的方法将参数传递给正在运行的进程。

选项取决于您尝试与之通信的流程:

  • 用于命令行进程发送到进程'标准输入/读取标准输出可能是一个选项(需要在启动时捕获它们)
  • (仅限Windows)某些进程是COM“自动化服务器”,如Office,IE,..您可以使用ROT附加到现有进程,或通过自动化和控制通过相应的自动化接口启动。
  • (仅限Windows)一些支持旧的DDE协议
  • 一些支持IPC(进程间通信)的其他方式 - 套接字,命名管道,......
  • 支持从配置文件中读取更新...