C#操作exe应用程序

7 篇文章 0 订阅

首先,操作和调用并不一样,在我看来,调用也许就是直接运行这个exe文件,而我所说的操作就类似于在cmd里面用命令行的方式来获得信息交互。这次,我们需要使用C#代码语言的方式来动态操作exe应用程序。虽然听起来可能很高大尚,但是实质上主要就两种操作,一个是向命令行写入数据的操作,另一个则是读取命令行的结果的操作。
话不多说,直接上代码吧:

public static String ExecProc(string TableID, string exeFilePath, Process process1, ProcessStartInfo startInfo)
        {
            if (TableID != null)
            {
                startInfo.FileName = exeFilePath;//执行exe文件
                //startInfo.Arguments = TableID;//参数
                startInfo.RedirectStandardInput = true;
                startInfo.RedirectStandardOutput = true;
                //startInfo.CreateNoWindow = true; //不创建窗口  
                //startInfo.UseShellExecute = false;// 不使用系统外壳程序启动
                process1.StartInfo = startInfo;
            }
            process1.Start();
            process1.StandardInput.WriteLine(TableID);
            string txt = process1.StandardOutput.ReadLine();
            //process1.Close();
            //process1.Kill();
            return txt;
        }
  • Arguments 这个参数是指在进入程序前输入的参数,如果想程序中进行参数交互就需要开启RedirectStandardInput 这个参数
  • 同理,想要获取exe命令行返回的结果,也需要开启RedirectStandardOutput 这个参数
  • 参数设置完毕后就能开启进程,这里也记得随手关闭进程。(节约资源)
其余几个参数可以看注释解释,还有一些不太常用的参数我在这里就多一一列举了,需要用到的时候可以自己去查阅ProcessStartInfo 以及Process 的官方文档,里面都有详细的教程。 上面是将操作的流程包装成了一个函数,可以直接调用,灵活性更高,下面举一个测试实例:
public String Get()
        {
            Process process1 = new Process();//创建进程对象 
            ProcessStartInfo startInfo = new ProcessStartInfo();//进程信息对象
            String str = ExecProc("START 15", @"C:\Users\VULCAN\Desktop\Gobang\pbrain-SlowRenju19.exe", process1, startInfo);
            return str;
        }

这个代码我是想把获得到的数据呈现在前端页面,如果用控制台的话就直接用Console.WriteLine()函数就ok。顺便扩展一句,如果想用持续与前端页面进行数据交互,这时候可能就无法直接传递数据,需要将数据包装成json格式进行发送,而前端用ajax进行接收就好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值