C# 应用程序未以交互模式启动
我正在尝试使用process.start()从控制台应用程序启动记事本。记事本也在打开,但它在后台。我一关闭控制台应用程序,它就会启动。 下面是我的代码。我试着在主线程和单独的线程中打开它。 建议我如何在交互模式下打开记事本或其他程序而不被阻止 请帮帮我C# 应用程序未以交互模式启动,c#,multithreading,process,console-application,C#,Multithreading,Process,Console Application,我正在尝试使用process.start()从控制台应用程序启动记事本。记事本也在打开,但它在后台。我一关闭控制台应用程序,它就会启动。 下面是我的代码。我试着在主线程和单独的线程中打开它。 建议我如何在交互模式下打开记事本或其他程序而不被阻止 请帮帮我 static void RunApplication() { Process proc = new Process {
static void RunApplication()
{
Process proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = @"C:\Windows\system32\cmd.exe",
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
RedirectStandardInput = true,
},
};
proc.OutputDataReceived += App_OutputDataReceived;
proc.ErrorDataReceived += App_ErrorDataReceived;
proc.Start();
proc.BeginErrorReadLine();
proc.BeginOutputReadLine();
RunCommand(proc, @"C:");
RunCommand(proc, @"notepad.exe");
Thread.Sleep(10000);
}
static void RunCommand(Process p, string command)
{
p.StandardInput.WriteLine(command);
p.StandardInput.Flush();
}
static void App_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
//OutPutReceivedFromThread += e.Data + "\r\n";
Console.WriteLine(e.Data + "\r\n");
}
static void App_ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
//OutPutReceivedFromThread += e.Data + "\r\n";
Console.WriteLine(e.Data + "\r\n");
}
我认为这里的问题是你试图变得太复杂,或者上面的例子没有正确地说明你的问题 i、 e.您可以使用以下代码运行记事本
static void Main(string[] args)
{
Process.Start("notepad.exe");
}
因此,除非您需要能够向打开的控制台发送许多控制台代码行,或者需要读取控制台流,否则只需尝试非常简单的soemthing。希望这有帮助。请!!!我已经做了我所知道的一切..添加RunCommand函数的代码是的,它确实会打开应用程序,但在我的场景中,我必须先打开命令提示符,然后执行我选择的命令。比如打开记事本,关闭一些东西等等。我可以在Windows7中用同样的代码完成这些任务。但同一可执行文件的行为与win 7中的行为不一样。在windows 7中,程序在使用Runcommand启动时启动。但在WindowsXP中,它只是启动并保持在后台。永不发射