zoukankan      html  css  js  c++  java
  • C# 调用外部exe程序,出现已停止工作

    1.在一个项目中,一个Library 调用另外一个Library的可执行文件时,如果用Process.Start(exe文件)(如果该exe文件没有相关的配置文件,则可以执行成功),但是如果有相关的配置文件,则会出现该exe文件已停止工作的错误提示。出现这样的原因是这样的,本身调用的时候,目录是自己bin/debug文件夹的路径,之后你设置其他路径的时候,就会出现错误,可以用cmd调试测试下,直接打开cmd,将exe要调用的程序放入cmd中执行,看是否出错,如果不出错,那么使用Process.Start("exe文件")调用也没问题的,如果出错,则是路径的问题。

    解决方法:程序操作cmd来调用exe程序,先cd到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界面
    
                try
              {
                  p.Start();//启动
    
                    p.StandardInput.WriteLine(@"cd");
                  p.StandardInput.WriteLine(@"cd " + AppDomain.CurrentDomain.BaseDirectory + "ProWin" + "");//执行程序所在目录
                    p.StandardInput.WriteLine(@"" + AppDomain.CurrentDomain.BaseDirectory + @"ProWinWindowsUI.exe" + "");//执行程序具体位置
    
                    p.StandardInput.WriteLine("exit");//退出
                    p.Close();//关闭
                }
                catch (Exception ex)
                {
    
                }
  • 相关阅读:
    动态规划-1维消消乐
    矩阵求幂-倍加算法
    动态规划-匹配问题
    动态规划-最短回文串
    动态规划-最长回文子串
    动态规划-矩形嵌套
    动态规划-硬币找零
    windows 2003最完善最完美的权限及安全设置解决方案【转】
    python模块之email: 电子邮件编码
    word页面设置问题。通过域设置首页不计算页面的自定义页码格式
  • 原文地址:https://www.cnblogs.com/ybb521/p/3423463.html
Copyright © 2011-2022 走看看