首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请C# new Process出错误

2013-03-13 
请高手指点C# new Process出异常本人想用C#执行命令行,执行Process process new Process()时就会出异常

请高手指点C# new Process出异常
本人想用C#执行命令行,执行Process process = new Process();时就会出异常

BasePriority = “process.BasePriority”引发了“System.InvalidOperationException”类型的异常
ExitCode = “process.ExitCode”引发了“System.InvalidOperationException”类型的异常
ExitTime = “process.ExitTime”引发了“System.InvalidOperationException”类型的异常
......
process的属相
貌似都异常了,哪位高手给指点下为啥。

代码如下:

private void executeCommand(string command)
        {
            Process process = new Process();
            process.StartInfo.FileName = "cmd.exe";
            //从 Process.StandardInput流中读取
            process.StartInfo.RedirectStandardInput = true;
            //写入 Process.StandardOutput流中
            process.StartInfo.RedirectStandardOutput = true;
            //错误输出写入 Process.StandardError 流中
            process.StartInfo.RedirectStandardError = true;

            //不显示界面
            process.StartInfo.CreateNoWindow = true;
            //不使用操作系统外壳程序启动进程
            process.StartInfo.UseShellExecute = false;

            process.StandardInput.WriteLine(command);
            process.StandardInput.WriteLine("exit");

            MessageBox.Show(process.StandardOutput.ReadToEnd());
            
        }


[解决办法]
我试了你的代码,没错误啊,可以正确执行,
红色那行是我加的

 Process process = new Process();
            process.StartInfo.FileName = "cmd.exe";
            //从 Process.StandardInput流中读取
            process.StartInfo.RedirectStandardInput = true;
            //写入 Process.StandardOutput流中
            process.StartInfo.RedirectStandardOutput = true;
            //错误输出写入 Process.StandardError 流中
            process.StartInfo.RedirectStandardError = true;
         

            //不显示界面
            process.StartInfo.CreateNoWindow = true;
            //不使用操作系统外壳程序启动进程


            process.StartInfo.UseShellExecute = false;
            process.Start();//这句是我加的
            process.StandardInput.WriteLine(command);
            process.StandardInput.WriteLine("exit");

            MessageBox.Show(process.StandardOutput.ReadToEnd());
[解决办法]

protected void Page_Load(object sender, EventArgs e)
        {
            executeCommand("notepad");
        }
        private void executeCommand(string command)
        {
            Process process = new Process();
            process.StartInfo.FileName = "cmd.exe";
            //从 Process.StandardInput流中读取
            process.StartInfo.RedirectStandardInput = true;
            //写入 Process.StandardOutput流中
            process.StartInfo.RedirectStandardOutput = true;
            //错误输出写入 Process.StandardError 流中
            process.StartInfo.RedirectStandardError = true;

            //不显示界面
            process.StartInfo.CreateNoWindow = true;
            //不使用操作系统外壳程序启动进程
            process.StartInfo.UseShellExecute = false;
            //这句话少了
            process.Start();
            process.StandardInput.WriteLine(command);
            process.StandardInput.WriteLine("exit");

            Response.Write(process.StandardOutput.ReadToEnd());

        }

热点排行