
关于C#使用Process运行exe程序的问题
我有一个exe的程序,需要在C#中调用到,情况是这样的,该exe是需要参数登录后,会进入到该程序的shell,等待输入命令的,这样的话C#就无法读取到最后那行了,并且用p...
我有一个exe的程序,需要在C#中调用到,情况是这样的,该exe是需要参数登录后,会进入到该程序的shell,等待输入命令的,这样的话C#就无法读取到最后那行了,并且用ps.StandardInput.WriteLine(" **** "); 也无法输入命令。有没有其他方法,或者怎样才能在该exe的shell里面输入命令??
那个程序的shell具体是下图那样:
我需要进入shell后,输入命令,但是发现如果直接用ps.StandardInput.WriteLine(" **** "); 的话,命令是输入不到这个shell的。需要怎样调整?或者有没有其他方法?(这个exe最终是调用java.exe的,我试过获取java.exe的句柄,然后往这个java.exe sendkey,是可以使用,但是这样的话不能整合我其他功能) 展开
那个程序的shell具体是下图那样:
我需要进入shell后,输入命令,但是发现如果直接用ps.StandardInput.WriteLine(" **** "); 的话,命令是输入不到这个shell的。需要怎样调整?或者有没有其他方法?(这个exe最终是调用java.exe的,我试过获取java.exe的句柄,然后往这个java.exe sendkey,是可以使用,但是这样的话不能整合我其他功能) 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
应该可以吧,ps.StandardInput.WriteLine("xx")是报错,输入完没响应?
追问
不行的,用ps.StandardInput.WriteLine("xx")的话,要我手动kill掉那个exe,然后WriteLine才写到cmd里面,而不是写在我那个exe。或者是因为进入*.exe 的shell后,C#认为这个程序是没执行完的,所以不会WriteLine。
追答
//没太明白你说的,不过我用下面的方法执行一些exe程序都没问题
void Exc(string exe, string arg)
{
Process p = new Process();
p.StartInfo.FileName = exe;
p.StartInfo.Arguments = arg;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.EnableRaisingEvents = true;
p.Exited += new EventHandler(p_Exited);
p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
p.ErrorDataReceived += new DataReceivedEventHandler(p_ErrorDataReceived);
p.Start();
p.StandardInput.WriteLine("xxxxx");
p.BeginOutputReadLine();
p.BeginErrorReadLine();
}
void p_OutputDataReceived(Object sender, DataReceivedEventArgs e)
{
//e.Data
}
//字数超了,还有两个事件方法同上
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询