将用户输入传递给ProcessStartInfo.Arguments

时间:2013-03-13 19:41:23

标签: c# asp.net

我认为这是一个简单的问题。

我正在尝试创建一个基本的Web表单,其中包含用户输入文本框,用于运行进程的按钮以及用于显示进程结果的标签或文本框。

诀窍是,我希望用户输入用作我的代码中“StartInfo.Arguments”属性的值。

以下是代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Diagnostics;

namespace MyApp
{
public partial class InputTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    public void Button1_Click(object sender, EventArgs e)
    {
        Process MyProcess = null;
        string MyProcessOutput = null;
        string MyProcessInput = null;

        try
        {
            MyProcess = new Process();


            MyProcess.StartInfo.CreateNoWindow = true;
            MyProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

            MyProcess.StartInfo.FileName = @"C:\Windows\sysWOW64\myapp.exe"; // Command to run
            MyProcess.StartInfo.Arguments = ...  //Where I would like to put user input
            MyProcess.StartInfo.UseShellExecute = false;
            MyProcess.StartInfo.RedirectStandardInput = true;
            MyProcess.StartInfo.RedirectStandardOutput = true;

            MyProcess.Start();


            MyProcessOutput = MyProcess.StandardOutput.ReadToEnd();
        }
        catch (Exception ex)
        {

            MyProcessOutput = "An error occurred:\r\n" + ex.Message;
        }
        finally
        {
            if (MyProcess != null)
                MyProcess.Dispose();
        }

        MyProcessOutput = MyProcessOutput.Replace("\r\n", "<br />\r\n");

        myresultsLabel.Text = MyProcessOutput;
    }
}

}

这里的关键是这一行:

  MyProcess.StartInfo.Arguments = ...  //Where I would like to put user input

有关文本框,用户输入或其他方式将用户的数据导入特定属性的任何想法吗?

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

在页面中创建TextBox,为其命名为argumentsTextBox,并将其编码为:

MyProcess.StartInfo.Arguments = argumentsTextBox.Text;

答案 1 :(得分:0)

我不确定您的用户输入是什么意思,但我会尝试回答我的C#经验 - 在运行时收到的用户输入:
在我的应用程序中,我创建了一个执行文件的进程。我处理进程的IO,当需要输入时,执行模块使用处理程序。
它是WPF,因此执行模块只知道我的应用程序实现的接口。当需要用户输入时,将显示一个弹出窗口。