CS代码:
static Process p;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
open();
}
void open()
{
p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
p.Start();
p.BeginOutputReadLine();
} void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
TextBox1.Text += e.Data;
}
protected void Button1_Click(object sender, EventArgs e)
{
p.StandardInput.WriteLine("dir d:");
}
Html代码:
<asp:TextBox ID="TextBox1" runat="server" Height="297px" TextMode="MultiLine"
Width="506px"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />为什么我在Process进程事件void p_OutputDataReceived(object sender, DataReceivedEventArgs e)中的代码不起作用呢。好像都不会回发到客户端去。
请问这要怎么做呢。让void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
中的代码能对客户端起作用。
static Process p;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
open();
}
void open()
{
p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
p.Start();
p.BeginOutputReadLine();
} void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
TextBox1.Text += e.Data;
}
protected void Button1_Click(object sender, EventArgs e)
{
p.StandardInput.WriteLine("dir d:");
}
Html代码:
<asp:TextBox ID="TextBox1" runat="server" Height="297px" TextMode="MultiLine"
Width="506px"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />为什么我在Process进程事件void p_OutputDataReceived(object sender, DataReceivedEventArgs e)中的代码不起作用呢。好像都不会回发到客户端去。
请问这要怎么做呢。让void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
中的代码能对客户端起作用。
解决方案 »
- ASP.Net Calendar控件 如何取消选择日期
- 考试系统对成绩排名
- 数据库中为什么要把图片以字节码存储到数据库里.
- GridView1控件中如何设置DropdownList的默认值
- TreeView 后台读取数据,当数据改变后,如何刷新??
- /*--------------->谁懂网吧WEB电影或者播客的瞧瞧,来者有分。。。。网吧影院项目播放问题《《《《《《《《《《《《《《
- 说过300分,哈哈,放分
- 关于COOKIE的存放与提取问题?急!
- 用后台产生JS数组,Page.RegisterArrayDeclaration("A[1]","'1','2','4'");也出错,真是晕啊。
- EF 出现 基础提供程序在 Open 上失败
- 怎么把这个JS改成显示某HTML页面
- c# 使用vb的函数出错,why???
还有我调试过了,事件中的代码有执行过,但是执行了控件没反应,我想应该是没有回发到客户端去。
这事件里,所以东西都不会发到客户端去。
你帮我写出来下行吗
你用ajax,然后再server端并行执行你的那个 void open() 函数。然后将结果返回给js, 然后更新,或者实现异步的handler,不然在一个web request 怎么可能做到不阻塞的并行执行。
{
TextBox1.Text += e.Data;
}
你这方法没客户端请求,能成功?