我认为这是一个简单的问题。
我正在尝试创建一个基本的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
有关文本框,用户输入或其他方式将用户的数据导入特定属性的任何想法吗?
提前感谢您的帮助!
答案 0 :(得分:0)
在页面中创建TextBox
,为其命名为argumentsTextBox
,并将其编码为:
MyProcess.StartInfo.Arguments = argumentsTextBox.Text;
答案 1 :(得分:0)
我不确定您的用户输入是什么意思,但我会尝试回答我的C#
经验 - 在运行时收到的用户输入:
在我的应用程序中,我创建了一个执行文件的进程。我处理进程的IO,当需要输入时,执行模块使用处理程序。
它是WPF
,因此执行模块只知道我的应用程序实现的接口。当需要用户输入时,将显示一个弹出窗口。