类别:程序开发

日期:2020-03-26 浏览:2867 评论:0

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.实战

1.webp.jpg
界面设计

2.webp.jpg
代码

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

3.webp.jpg

点击事件与函数关联

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即可.



本文标题:如何使用C#调用外部exe,且带参数?
本文链接:https://vtzw.com/post/123.html
作者授权:除特别说明外,本文由 零一 原创编译并授权 零一的世界 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
 您阅读本篇文章共花了: 

 可能感兴趣的文章

评论区

发表评论 / 取消回复

必填

选填

选填

◎欢迎讨论,请在这里发表您的看法及观点。

最新留言