趁热打铁,赶紧记录下来。
本身调用,使用Process.Start(“XX.exe”); 基本上是没问题的,但是有些需要读取配置文件的exe程序(目前将出现停止工作的原因归为这个,您有想法,请留言)会出现“程序已停止工作”,其实原理也简单的,本身调用的时候,目录是自己bin文件夹的路径,之后你设置其他路径的时候,就会出现错误,可以用cmd调试测试下,直接打开cmd,将exe要调用的程序拉入cmd中执行,看是否出错,如果不出错,那么使用Process.Start(“XX.exe”);调用也没问题的,如果出错,则是路径的问题。
解决方法如下:
cmd测试:先cd到exe程序的所在目录,之后将exe拉进去执行,我这测试就没问题,正常运行了,于是就有下一步,c#程序操作cmd来调用exe程序。
程序实现cmd调用外部exe程序:
Process p = new Process();//新进程 p.StartInfo.FileName = "cmd.exe";//打开cmd程序 p.StartInfo.UseShellExecute = false;//不使用shell启动程序 p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true;//true表示不显示黑框,false表示显示dos界面 p.Start();//启动 p.StandardInput.WriteLine(@"cd"); p.StandardInput.WriteLine(proSystem + ":");//proSystem为程序所在盘 exePosition = "cd " + fileStrName + "Mobai.App" + "\" + btnName + @"inDebug"; p.StandardInput.WriteLine(exePosition);//执行程序所在目录 p.StandardInput.WriteLine(btnName);//执行程序具体位置 p.StandardInput.WriteLine("exit");//退出 p.Close();//关闭
如果你打开的是记事本,或是config文件的话,去掉cd,直接打开地址.