请高手指点C# new Process出异常

_谷粒_ 2013-03-11 09:23:56
本人想用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());

}

...全文
946 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_25161175 2015-07-30
  • 打赏
  • 举报
回复
你问你这个是怎么解决的,我也遇到你这样的问题呀!
qsw1214 2013-03-11
  • 打赏
  • 举报
回复
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());

        }
夜轻风 2013-03-11
  • 打赏
  • 举报
回复
查查其他地方吧,应该是其他错误引起的。真正的病灶解决这里应该就没问题了。
gxingmin 2013-03-11
  • 打赏
  • 举报
回复
我试了你的代码,没错误啊,可以正确执行, 红色那行是我加的 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());
_谷粒_ 2013-03-11
  • 打赏
  • 举报
回复
问题是还米有执行到process.StartInfo.FileName = "cmd.exe"; Process process = new Process();就出错了
  • 打赏
  • 举报
回复
process.StartInfo.FileName = "cmd.exe"; 是不是因为没有加上cmd.exe所在文件夹的路径?

111,112

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧