C#如何调用外部exe程序

http://blog.csdn.net/cyamazing/article/details/52849106


1.在主界面添加调用外部exe程序的Button,双击此Button进入代码编辑页面。

在程序的开始using System.Diagnostics;

然后在初始化函数的上方定义private static System.Diagnostics.Process p;

2.在Button的双击事件中,添加如下代码:

 if (p == null)
            {
                p = new System.Diagnostics.Process();
                p.StartInfo.FileName = "应用程序名字.exe";
                p.Start();
            }
            else
            {
                if (p.HasExited) //是否正在运行
                {
                    p.Start();
                }
            }
            p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
        }

3.若想关闭主程序的同时也关闭调用的程序,需要在退出程序的按钮事件中添加如下代码:

           Process[] pProcess;
            pProcess = Process.GetProcesses();
            for (int i = 1; i <= pProcess.Length - 1; i++)
            {
                if (pProcess[i].ProcessName == "应用程序名字")   //任务管理器应用程序的名
                {
                    pProcess[i].Kill();
                    break;
                }
            }

    但是这里有个问题,点击Button调用外部exe程序后,若将外部exe程序最小化,此时再点击主界面的调用按钮时,exe程序不能显示在屏幕的最前端,只能手动从任务栏将其窗口正常化。一时不知如何解决,不过也无伤大雅。


如果只是简单的调用外部的EXE程序文件,只需要下面一行代码就可以搞定。

                System.Diagnostics.Process.Start(Application.StartupPath + “你的应用程序.exe”);

如果是等待这个EXE程序执行完毕再执行下面的代码其实也是很简单的,只需要在后面使用WaitForExit()方法即可。

代码如下
System.Diagnostics.Process.Start(Application.StartupPath + “你的应用程序.exe”).WaitForExit();


//调用外部程序导cmd命令行
    Process p = new Process();
    p.StartInfo.FileName = "cmd.exe";
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardInput = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.CreateNoWindow = false;
    p.Start(); 
    / /向cmd.exe输入command 
    p.StandardInput.WriteLine("cd C:\\Inetpub\\wwwroot\\Paicdom\\PaWebService\\PaWeb\\Manage\\Exportcsv");
    //cmd又调用了ociuldr.ex
    p.StandardInput.WriteLine("ociuldr.exe");
    p.StandardInput.WriteLine("exit"); //需要有这句,不然程序会挂机
    //string output = p.StandardOutput.ReadToEnd(); 这句可以用来获取执行命令的输出结果

  • 15
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值