C# 调用外部EXE程序,接收exe传递的参数,python打包成exe文件

C# 调用外部EXE程序

下面代码实现了调用“KZ.exe”这个文件,
同时给 输入4 这个参数CMD中操作如下

PS C:\Users\dell> kz.exe 4

输出的值则是通过 DCoutput 这个来接收,代码中进行了两次执行exe文件,获取了两次的输出值

  string Get_DC_Voltage()
  {
      Process process = new Process();//实例
      process.StartInfo.CreateNoWindow = true;//设定不显示窗口
      process.StartInfo.UseShellExecute = false;
      process.StartInfo.FileName = "kz.exe"; //设定程序名
      process.StartInfo.RedirectStandardInput = true; //重定向标准输入
      process.StartInfo.RedirectStandardOutput = true; //重定向标准输出
      process.StartInfo.RedirectStandardError = true;//重定向错误输出
      process.StartInfo.Arguments = "4";
      process.Start();
      process.WaitForExit();

      //多次执行需要在这个位置执行
      string DCoutput = string.Empty;
      DCoutput = process.StandardOutput.ReadToEnd();//获取输出流,输出的值会传递到DCoutput中
      Debug.WriteLine(DCoutput);

	  //再次获取
      process.Start();
      process.WaitForExit();
      DCoutput = process.StandardOutput.ReadToEnd();//获取输出流
      Debug.WriteLine(DCoutput);

      process.StandardInput.Close();
      process.Close();

      return DCoutput;
  }

C# 调用python 执行代码

python执行代码的时候需要先布置python的环境,可能会给编程带来一些麻烦
思路,C# 调用python.exe ,文件名称,输入的值

以下是cmd中的操作

PS C:\Users\dell> python kz.exe 4

python 代码打包成exe

安装 PyInstaller 模块

pip install pyinstaller

成功的话会有如下的显示
Successfully installed pyinstaller-x.x.x

app.py就是运行的程序

pyinstaller -F app.py

-h,–help 查看该模块的帮助信息
-F,-onefile 产生单个的可执行文件
-D,–onedir 产生一个目录(包含多个文件)作为可执行程序
-a,–ascii 不包含 Unicode 字符集支持
-d,–debug 产生 debug 版本的可执行文件
-w,–windowed,–noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-c,–nowindowed,–console 指定使用命令行窗口运行程序(仅对 Windows 有效)
-o DIR,–out=DIR 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件
-p DIR,–path=DIR 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径
-n NAME,–name=NAME 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

以上列出的只是 PyInstaller 模块所支持的常用选项,如果需要了解 PyInstaller 选项的详细信息,则可通过 pyinstaller -h 来查看。

PS:笔者经验python打包成exe之后运行速度明显变慢,就很无语。

你可能感兴趣的:(C#,python,软件,python,c#,开发语言)