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

    趁热打铁,赶紧记录下来。

    本身调用,使用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,直接打开地址.

  • 相关阅读:
    【转载】Java系列笔记(3)
    CentOS 7下Samba服务器的安装与配置
    Linux常用目录结构
    Linux计划任务crontab
    转:Linux 双网卡配置两个IP同时只有一个会通的原因
    centos7中搭建ntp服务器
    centos7中使用vg方式扩充root分区
    ping命令脚本实现显示网络状态、学生姓名、学号
    centos中基于随机数,再加入班级学生姓名
    centos7 shell脚本实现随机数
  • 原文地址:https://www.cnblogs.com/bkycjj/p/3255485.html
Copyright © 2011-2022 走看看