Read/Write 由 exe 从 windows 表单应用程序生成的控制台数据
Read/Write data to Console generated by exe from windows form application
我有一个调用 exe 的简单 c# windowsform 应用程序。exe 反过来会打开一个控制台。 exe生成的CONSOLE是否可以读写数据。我想从我的 windows 表单应用程序
发送数据
如果您的可执行文件使用运行 'cmd.exe' 的流程实例创建控制台,那么您可以通过设置流程的 StartupInfo 重定向控制台的输入和输出...
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
...然后您可以挂接到用户输入控制台输入时发生的事件...
p.OutputDataReceived += new .DataReceivedEventHandler(ConsoleOutputHandler);
void ConsoleOutputHandler(object sender, DataReceivedEventArgs rec)
{
// do something with the data
}
您可以使用 Process.startInfo()
传递参数。获取参数应该根据你的要求来完成(可能是从文本框等读取)
// Extracting parameter from form
string para1=textbox1.Text;
// State the program to be start; PATH is the path to program .exe
ProcessStartInfo startInfo = new ProcessStartInfo(PATH);
// Passing arguments :para1 extracted from textbox (string type)
startInfo.Arguments = para1
// Starting process
Process exec= Process.Start(startInfo);
// optionally waiting for execution
exec.WaitForExit();
这也可以在单行中完成,如下所示,
// Simply define program to execute and pass a and b parameters
Process.Start(PATH,para1);
注意:路径是类似于 "program1.exe"
的字符串或程序的完整路径
另外:您不限于一个参数
// Extracting parameter from form
string para1=textbox1.Text;
string para2=textbox2.Text;
Process.Start(PATH,para1+" "+para2); // Pass 2 parameters (using + string concat)
您可以发送许多参数,只需将它们用 space 分隔。当您需要在参数中包含 space 时,只需使用 '\'
转义它们
我有一个调用 exe 的简单 c# windowsform 应用程序。exe 反过来会打开一个控制台。 exe生成的CONSOLE是否可以读写数据。我想从我的 windows 表单应用程序
发送数据如果您的可执行文件使用运行 'cmd.exe' 的流程实例创建控制台,那么您可以通过设置流程的 StartupInfo 重定向控制台的输入和输出...
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
...然后您可以挂接到用户输入控制台输入时发生的事件...
p.OutputDataReceived += new .DataReceivedEventHandler(ConsoleOutputHandler);
void ConsoleOutputHandler(object sender, DataReceivedEventArgs rec)
{
// do something with the data
}
您可以使用 Process.startInfo()
传递参数。获取参数应该根据你的要求来完成(可能是从文本框等读取)
// Extracting parameter from form
string para1=textbox1.Text;
// State the program to be start; PATH is the path to program .exe
ProcessStartInfo startInfo = new ProcessStartInfo(PATH);
// Passing arguments :para1 extracted from textbox (string type)
startInfo.Arguments = para1
// Starting process
Process exec= Process.Start(startInfo);
// optionally waiting for execution
exec.WaitForExit();
这也可以在单行中完成,如下所示,
// Simply define program to execute and pass a and b parameters
Process.Start(PATH,para1);
注意:路径是类似于 "program1.exe"
的字符串或程序的完整路径
另外:您不限于一个参数
// Extracting parameter from form
string para1=textbox1.Text;
string para2=textbox2.Text;
Process.Start(PATH,para1+" "+para2); // Pass 2 parameters (using + string concat)
您可以发送许多参数,只需将它们用 space 分隔。当您需要在参数中包含 space 时,只需使用 '\'