当前位置: 首页 > news >正文

C# Winform调用控制台程序(通过Process类)

文章目录

    • 1.引入命名空间
    • 2.初始化进程
    • 3.启动进程

1.引入命名空间

using System.Diagnostics;

2.初始化进程

1.startInfo.FileName 运行的.exe文件的完整路径,也可以使用相对路径。
2.startInfo.Arguments 允许你向.exe程序传递命令行参数,参数间用空格分隔,也可以使用内插字符串。
3.startInfo.UseShellExecute 如果设为true,那么将使用操作系统外壳来启动进程;如果设为false,则直接启动进程,并且你可以重定向输入输出流。
4.startInfo.WindowStyle 设置了新打开窗口的样式,默认是正常显示。

private void StartButton_Click(object sender, EventArgs e)
{// 定义要启动的进程信息ProcessStartInfo startInfo = new ProcessStartInfo();// 设置要启动的应用程序路径startInfo.FileName = @"C:\Path\To\Your\Program.exe";//也可以使用相对路径 .\\Program.exe//.表示当前目录  ..表示上一级目录//可以使用Directory.GetCurrentDirectory()获取当前目录//string s=Directory.GetCurrentDirectory();// MessageBox.Show(s);// 如果需要传递参数给.exe程序,可以设置Arguments属性,参数间用空格分隔。.exe程序中用args接收参数。startInfo.Arguments = "your arguments here";//args[0]=your  args[1]=arguments args[2]=here//如果需要传变量可以使用内插字符串//startInfo.Arguments = $"0483 5448 {comboBox1.Text}";// 是否使用Shell执行startInfo.UseShellExecute = true;// 是否等待子进程退出startInfo.WindowStyle = ProcessWindowStyle.Normal;  // 可以选择隐藏、最大化等/*Normal 正常显示 Hidden 隐藏 Minimized 最小化  Maximized 最大化*/}

.exe程序

 static void Main(string[] args){UsbDevice ub = new UsbDevice();ub.OpenUsbDevice(args[0], args[1]);//当参数过长时,可能会遇到命令行参数长度限制的问题。//在Windows中,命令行参数的最大长度大约为8192个字符。如果参数超过了这个长度,启动进程时可能会失败。//可以传文件路径 在.exe程序中读取文件string str = File.ReadAllText(args[2]);//读取文件ub.Senda(str);}

3.启动进程

		try{// 启动进程Process.Start(startInfo);}catch (Exception ex) {// 处理异常MessageBox.Show("Error: " + ex.Message);}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 使用build_chain.sh离线搭建匹配的区块链,并通过命令配置各群组节点的MySQL数据库
  • Java语言程序设计基础篇_编程练习题**18.30 (找出单词)
  • 【网络】高级IO——LT和ET
  • 洛谷P8572
  • 1. ZYNQ 2. MPSOC 3. FPGA 4. Vitis 5. 项目
  • 如何用AI论文生成工具撰写一篇高质量的成人教育毕业论文
  • 【AI创作组】Matlab绘图基础之plot函数
  • 机器学习 and 深度学习
  • Python办公自动化教程(003):PDF的加密
  • 【Git使用】删除Github仓库中的指定文件/文件夹
  • FPGA科学高效的编程方法有哪些?
  • 硬件工程师笔试面试——电机
  • Android MediaPlayer + GLSurfaceView 播放视频
  • 【Linux篇】常用命令及操作技巧(基础篇)
  • WebRtc一对一视频通话_New_peer信令处理
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 5、React组件事件详解
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Brief introduction of how to 'Call, Apply and Bind'
  • ES2017异步函数现已正式可用
  • Git 使用集
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • NSTimer学习笔记
  • Rancher如何对接Ceph-RBD块存储
  • SQLServer之创建数据库快照
  • ViewService——一种保证客户端与服务端同步的方法
  • v-if和v-for连用出现的问题
  • 测试如何在敏捷团队中工作?
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 规范化安全开发 KOA 手脚架
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 回流、重绘及其优化
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 聊一聊前端的监控
  • 如何在GitHub上创建个人博客
  • 算法---两个栈实现一个队列
  • # centos7下FFmpeg环境部署记录
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (7)摄像机和云台
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (补充)IDEA项目结构
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (九十四)函数和二维数组
  • (六)DockerCompose安装与配置
  • (转)【Hibernate总结系列】使用举例
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (自用)gtest单元测试
  • (自用)网络编程
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)