利用Process调用的程序,不能输入及输出

SFantasy_2010 2010-11-06 12:46:57
1、我做的是一个编译器,当编译完成后,我想通过编译器调用编译出来的EXE文件,运行给用户看。
2、编译出来的EXE文件只有CMD窗口那样的界面,当直接双击运行时,能进行输入与输出。
当我用C#的Process调用编译出来的EXE文件,则界面卡住,无法发进行输入输出。
3、我调用编译出来的EXE文件代码如下:
Process p = new Process();
p.StartInfo.FileName = System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + "\\bin\\test.exe";
p.Start();
p.WaitForExit();
p.Close();
4、用3中同样的代码,把p.StartInfo.FileName 的值改为"cmd.exe"是能正常输入输出的。
...全文
339 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-11-06
  • 打赏
  • 举报
回复
这分。。。
如果你问题还存在,要不加我QQ,帮你远程调试一下试试。(我的QQ在我csdn个人空间中有)
SFantasy_2010 2010-11-06
  • 打赏
  • 举报
回复
我的意思是这样的。例如:我编译出来的程序是对10个数进行排序,当然要输入10个数字啦。但是当前通过Process 来调用这个编译出来的程序不能输入,也不能输出。但是直接运行却可以正常输入输出。
SFantasy_2010 2010-11-06
  • 打赏
  • 举报
回复
请问 wuyazhe你的意思是这样吗?
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
p.StandardInput.WriteLine(System.IO.Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + "\\bin\\test.exe");
SFantasy_2010 2010-11-06
  • 打赏
  • 举报
回复
通过Process来调用就不能输入,输出。直接双击运行就能正常输入输出。这其中是什么原因呢?
兔子-顾问 2010-11-06
  • 打赏
  • 举报
回复
不太明白你想做什么输入输出,那你process.start启动cmd吧你的程序test.exe做参数传递给cmd可以么?
SFantasy_2010 2010-11-06
  • 打赏
  • 举报
回复
谢谢wuyazhe的回答,但是结果还是一样,不能输出输入,个人觉得与路径没关。
请问知道什么原因吗?
兔子-顾问 2010-11-06
  • 打赏
  • 举报
回复
路径尝试这样
System.IO.Path.GetDirectoryName(Environment.GetCommandLineArgs()[0])+ "\\bin\\test.exe";
threenewbee 2010-11-06
  • 打赏
  • 举报
回复
不是,天,你编译器都做出来了,这个简单问题你搞不定?

111,129

社区成员

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

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

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