博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编写可执行程序,其它程序调用,并返回数据,C#
阅读量:6466 次
发布时间:2019-06-23

本文共 1744 字,大约阅读时间需要 5 分钟。

有时候在创建临时文件或文件夹,使用完成后,释放失败,删除提示占用,又不能结束主程序,就可以通过别的方法来解决

比如,另外创建一个程序,单独执行任务,完成后结束程序,并返回执行结果,上述问题就能解决。

一、创建需要调用的程序

新建一个Winform窗体

一般主函数是这样的

1 using System; 2 using System.Collections.Generic; 3 using System.Windows.Forms; 4  5 namespace Test 6 { 7     static class Program 8     { 9         /// 10         /// 应用程序的主入口点。11         /// 12         [STAThread]13         static void Main()14         {15             Application.EnableVisualStyles();16             Application.SetCompatibleTextRenderingDefault(false);17             Application.Run(new Form1());18         }19     }20 }

还包含一个Form1。

将启动窗体的代码删掉,Form1删除,给Main函数加上参数。

1 ///  2 /// 应用程序的主入口点。 3 ///  4 [STAThread] 5 static int Main(string[] args) 6 {  7     int i = 0; 8     if (args != null) 9     {10         #region 逻辑代码11 12         #endregion13     }14     return i;15 }
View Code

其中,i为返回的值。

 

二、在主程序中调用上述程序

将生成的Test.exe添加到主程序的资源中

在代码调用方法如下

1 int result = 0; 2 Process myProcess = new Process(); 3 try 4 { 5     string fileName = Path.Combine(Business.Datas.TempDirectory, "Test.exe"); 6     if (!File.Exists(fileName)) 7     { 8         byte[] bytes = global::HuaXing.ExamOperation.WindowsManager.Properties.Resources.Text; 9         File.WriteAllBytes(fileName, bytes);10     }11     string para = parms; //parms的格式为 "参数1 参数2 参数3",每个参数之间用空格分隔,参数中有空格可以用""将参数括起来 12     ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(fileName, para);13     myProcess.StartInfo = myProcessStartInfo;14     myProcess.Start();15     while (!myProcess.HasExited)16     {17         myProcess.WaitForExit();18     }19     result = myProcess.ExitCode;20 }21 catch (Exception ex)22 {23     Logger.LogInfo(ex);24 }

其中result为返回的参数。

 

此方法可以用来临时解决很多棘手的问题。

转载于:https://www.cnblogs.com/yunluan/p/6339608.html

你可能感兴趣的文章
MySQL日期 专题
查看>>
C#中禁止程序多开
查看>>
分布式缓存Redis使用以及原理
查看>>
[LeetCode] Number of 1 Bits 位操作
查看>>
数据结构与算法JavaScript描述——队列
查看>>
练习二:结对练习
查看>>
JSON中JObject和JArray,JValue序列化(Linq)
查看>>
onclick与addEventListener的区别
查看>>
杂七杂八
查看>>
samba、nginx服务
查看>>
Activity竟然有两个onCreate方法,可别用错了
查看>>
Linux经常使用命令(十六) - whereis
查看>>
Tomcat
查看>>
插件编译 版本问题
查看>>
android中TextView的阴影设置
查看>>
core dump相关
查看>>
MySQL如何导出带日期格式的文件
查看>>
Linux五种IO模型
查看>>
Bootstrap技术: 模式对话框的使用
查看>>
小知识,用myeclipes找jar
查看>>