1.问题意义

据说界面程序开发,首选C#(像lebview之类的也很好)
但是,能不能用其他语言开发核心代码,只用C#做界面?毕竟每种语言都有自己擅长的领域.

2.exe程序

比如有个example.exe,能接受4个参数.用cmd的调用方法是

example.exe "1" "a" "2" "3"

3.C#调用方法

// 调用exe的函数
using System.Diagnostics; public bool StartProcess(string runFilePath, params string[] args)
{
string s = "";
foreach (string arg in args)
{
s = s + arg + " ";
}
s = s.Trim();
Process process = new Process();//创建进程对象
ProcessStartInfo startInfo = new ProcessStartInfo(runFilePath, s); // 括号里是(程序名,参数)
process.StartInfo = startInfo;
process.Start();
return true;
} private void start_craw(object sender, EventArgs e)
{
string exe_path = "E:/example.exe"; // 被调exe
string[] the_args = { "1","2","3","4"}; // 被调exe接受的参数
StartProcess(exe_path, the_args);
}

4.实战

 
界面设计
 
代码

给按键添加点击事件,点击事件触发start_craw函数

 
点击事件与函数关联

5.StartProcess更多的设置

public bool StartProcess(string runFilePath, params string[] args)
{
string s = "";
foreach (string arg in args)
{
s = s + arg + " ";
}
s = s.Trim();
Process process = new Process();//创建进程对象
ProcessStartInfo startInfo = new ProcessStartInfo(runFilePath, s); // 括号里是(程序名,参数)
process.StartInfo = startInfo;
//process.StartInfo.UseShellExecute = true; //是否使用操作系统的shell启动
//startInfo.RedirectStandardInput = true; //接受来自调用程序的输入
//startInfo.RedirectStandardOutput = true; //由调用程序获取输出信息
//startInfo.CreateNoWindow = true; //不显示调用程序的窗口
process.Start();
return true;
}

6.疑难解答

调用外部exe时,当这个exe运行出错时,会闪退,无法看清错误原因
解决:
直接去调试这个被调用的exe即可.

作者:xigua1234
链接:https://www.jianshu.com/p/43aa64992706
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

最新文章

  1. C#运算符
  2. JS高程2.在HTML中使用Javascript(2)
  3. 【C语言入门教程】4.6 指针 和 数组
  4. 【BZOJ】1036: [ZJOI2008]树的统计Count(lct/树链剖分)
  5. Hibernate 抓取策略fetch-2 (批量抓取batch-size以及hibernate.jdbc.fetch_size、hibernate.jdbc.batch_size)
  6. JavaScript中回调函数的使用
  7. <Android>从窗口泄漏谈android:configChanges属性
  8. [WinJS] Promise 用法
  9. (转载)mysql书籍
  10. Spring总结 0.概述
  11. ASP.NET MVC 使用Uploadify实现多文件异步无刷新上传
  12. Oracle的Recyclebin策略
  13. Python进阶---面向对象的程序设计思想
  14. 吴恩达机器学习笔记58-协同过滤算法(Collaborative Filtering Algorithm)
  15. mysql获取相隔时间段的数据
  16. HTML中Meta标签中http-equiv属性
  17. php 公历阴历互相转换
  18. day03-变量
  19. python异常处理方法
  20. 003-and design-在create-react-app项目中使用antd

热门文章

  1. mint-ui之Loadmore使用
  2. (5keras自带的模型之间的关系)自己动手,编写神经网络程序,解决Mnist问题,并网络化部署
  3. gcc,g++
  4. 使用Scapy向Mininet交换机注入流量 实验记录
  5. File类文件的常见操作
  6. 如何用R来定制个性化PPT
  7. 性能跃升50%!解密自主研发的金融级分布式关系数据库OceanBase 2.0
  8. MySql登陆密码忘记了怎么办?MySQL重置root密码方法
  9. matplotlib.transforms
  10. Integer的最大值