返回信息流pro.StartInfo.UseShellExecute = false;
pro.StartInfo.RedirectStandardInput = true;
pro.StartInfo.RedirectStandardOutput = true;
//pro.StartInfo.CreateNoWindow = true;
pro.Start();
//pro.StandardInput.WriteLine("");// 向cmd.exe输入command
pro.StandardInput.WriteLine("op_mkema -m test");
pro.StandardInput.WriteLine(System.Environment.NewLine );
pro.StandardInput.WriteLine("test.i0.em.x");
pro.StandardInput.WriteLine(System.Environment.NewLine);
pro.StandardInput.WriteLine("op_runsim -net_name success -duration 1000");
pro.StandardInput.WriteLine(System.Environment.NewLine);
请问如果要显示dos窗口该怎么做呢?前面的不用shell启动是什么意思?
谢谢啦
这是一条镜像帖。来源:北邮人论坛 / soft-design / #28062同步于 2008/7/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
[求助]c#中dos 程序的运行
talentlin8
2008/7/12镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
UseShellExecute=false 就是说在启动那个进程的时候不要显示shell那个小黑框框,就是你说的dos窗口。
后面两句是stdin和stdout的重定向。
【 在 ericyosho 的大作中提到: 】
: UseShellExecute=false 就是说在启动那个进程的时候不要显示shell那个小黑框框,就是你说的dos窗口。
: 后面两句是stdin和stdout的重定向。
我把shell那句以及后面两句注释掉,运行就会有错误,需要设置重定向,然后把设置重定向的stdin和stdout加上之后,又有错误,需要把shell设置成false,似乎如果想要通过c#向dos输入什么,就必须加上那三句,这我就不理解了。
在运行后面的向dos输入的时候,又会经常只运行几句,例如只运行pro.StandardInput.WriteLine("op_mkema -m test");
而后面的那几句都不会运行,请问这是什么原因。
还有如果想要让dos运行一句之后,在等待30秒运行下一句,改用什么语句呢?
多谢啦
现在非常搞不清你的状况。
上面的那个代码是用来启动一个新的程序进程的,意思是新程序的进程不启动shell。
那你当前的进程是通过什么方式启动的呢?
是在shell模式下?还是在GUI方式下?