我看到我可以使用 System.Diagnostics.Process 启动进程。我正在尝试使用以下代码,但它不起作用。该页面只是挂起,我必须重新启动 IIS...
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Diagnostics;
public partial class VideoTest : System.Web.UI.Page
{
List<string> outputLines = new List<string>();
bool exited = false;
protected void Page_Load(object sender, EventArgs e)
{
string AppPath = Request.PhysicalApplicationPath;
Process myProcess = new Process();
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = AppPath + "\\bin\\ffmpeg.exe";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
myProcess.Exited += new EventHandler(ExitHandler);
myProcess.Start();
while (!exited)
{
// This is bad bad bad bad....
}
litTest.Text = "";
foreach (string line in outputLines)
litTest.Text += line;
}
private void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
outputLines.Add(outLine.Data);
}
// Handle Exited event and display process information.
private void ExitHandler(object sender, System.EventArgs e)
{
exited = true;
}
}