0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术C#启动和关闭外部进程的方法介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-14 14:36 次阅读

许多用户在程序开发过程中需要使用C#启动一个外部程序(进程),在使用完毕该外部程序后,又希望能将其关闭。我们特在此对C#启动和关闭外部进程的方法进行一个简单的介绍。
C#启动外部程序(进程)有两种方法:一种是直接使用C#提供的Process类,利用类的函数操作来直接启动外部程序;另一种方法是使用传统的Win32 API函数CreateProcess来实现外部进程的启动。
使用C#提供的Process类来启动外部程序方法比较简单,例举代码如下:
using System.Diagnostics; // 包含了Process类的定义
int myprocessID; // 进程ID
// 方法一:直接使用.Net提供的Process类来实现外部程序的启动
private void openButton_Click(object sender, EventArgs e)
{
Process myProcess = Process.Start('\\NandFlash\\SerialTST.exe', ''); // 启动外部进程
myprocessID = myProcess.Id; // 获得该外部进程ID
}
使用传统的Win32 API函数的方法相对复杂,代码如下:
using System.Runtime.InteropServices; // 使用外部Win32 API
#region Win32 API CreateProcess函数声明做函数申明。
[DllImport('coredll.Dll', EntryPoint = 'CreateProcess', SetLastError = true)]
extern static int CreateProcess(string strImageName, string strCmdLine,
IntPtr pProcessAttributes, IntPtr pThreadAttributes,
int bInheritsHandle, int dwCreationFlags,
IntPtr pEnvironment, IntPtr pCurrentDir,
IntPtr bArray, ProcessInfo oProc);
public class ProcessInfo
{
public int hProcess;
public int hThread;
public int ProcessID;
public int ThreadID;
}
#endregion
// 方法二:使用Win32 API来实现外部程序的启动
private void openButton_Click(object sender, EventArgs e)
{
ProcessInfo pi = new ProcessInfo();
CreateProcess('\\NandFlash\\SerialTST.exe', '', IntPtr.Zero, IntPtr.Zero,
0, 0, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, pi);
myprocessID = pi.ProcessID; // 得到该程序的ID
}
关闭外部进程的方法就是直接通过获得的该外部进程的ID来关闭它。这里只介绍使用.Net的Process类的方法:
// 关闭外部进程
private void closeButton_Click(object sender, EventArgs e)
{
Process myProcessA = Process.GetProcessById(myprocessID); // 通过ID关联进程
myProcessA.Kill(); // kill进程
}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6068

    浏览量

    34727
收藏 人收藏

    评论

    相关推荐

    请问ESP32C3内部WiFi与蓝牙进程如何彻底关闭

    会出现一次方波间隔为14ms,说明该间隔期间内芯片启动了其它进程导致多用了4ms。该进程的发生会导致2s内工作电流的上升,和ADC出现一定的不稳定,因此我希望将其彻底关闭,猜测该
    发表于 06-26 07:18

    第八届全国大学生网络与信息技术大赛正式启动,深开鸿助力开源鸿蒙生态发展

    近日,由中国通信学会主办的2024年第八届全国大学生网络与信息技术大赛组委会工作会议暨大赛启动仪式在北京邮电大学举行。在组委会的大力支持和领导下,深开鸿作为开源鸿蒙领域的生态平台型企业,为开源鸿蒙
    的头像 发表于 05-16 08:32 557次阅读
    第八届全国大学生网络与<b class='flag-5'>信息技术</b>大赛正式<b class='flag-5'>启动</b>,深开鸿助力开源鸿蒙生态发展

    通过大小鼠无血压测量实验明白了无血压测量技术的重要性

    血压测量技术的重要性:无血压测量技术是一种非侵入性的测量方法,可以避免对动物造成不必要的伤害。在医学研究中,无
    发表于 04-22 09:40

    Linux的shutdown命令介绍

    ,新用户将不能再登录,这是推荐使用的安全关机方式。关机之前,所有进程都会受到 shutdown 指令所发送的关闭进程信号,然后向 init 程序发送信号,要求它改变运行等级(runlevel
    发表于 04-08 06:12

    EMC技术:基础概念到应用的解读?|深圳比达电子.

    EMC技术:基础概念到应用的解读?|深圳比达电子电磁兼容性(Electromagnetic Compatibility,简称EMC)作为一项重要的技术领域,在现代电子设备中扮演着至关重要的角色
    发表于 03-11 11:59

    多业务光端机在远程医疗中的应用:推动医疗信息进程

    随着信息技术的不断发展,远程医疗作为一种新兴的医疗服务模式,正逐渐受到人们的关注。多业务光端机作为一种高速、高效的光通信设备,其在远程医疗中的应用,为医疗信息进程注入了新的活力。 一、多业务光端机
    的头像 发表于 02-23 14:07 199次阅读

    linux查看weblogic进程

    和性能情况。本文将详细介绍在Linux系统中如何查看WebLogic进程。 一、使用ps命令查看WebLogic进程 打开终端,使用以下命令查看所有WebLogic进程及其详细
    的头像 发表于 12-05 16:07 1024次阅读

    linux关闭docker的命令

    在 Linux 系统中,关闭 Docker 的操作可以通过以下多种方式进行。本文将详细讲解每一种方式,并提供示例代码和命令,以帮助读者更好地理解和实践。 使用 docker 命令 最常用的方法
    的头像 发表于 11-23 09:39 1827次阅读

    LabVIEW与C# 注册事件相关方法

    利用C#编写事件相关的类库,在WinForm和LabVIEW中进行测试,并描述相关程序的调用方法
    的头像 发表于 10-09 17:48 1725次阅读
    LabVIEW与<b class='flag-5'>C#</b> 注册事件相关<b class='flag-5'>方法</b>

    信息技术是干什么?

    广播电子技术信息技术
    橙群微电子
    发布于 :2023年09月22日 09:17:48

    再次登榜|亿达科创入选“2023年度软件和信息技术服务竞争力百强企业”

    8月31日,在第二十五届中国国际软件博览会上,中国电子信息行业联合会发布了“2023年度软件和信息技术服务竞争力百强企业”榜单。 亿达科创凭借在企业规模、经营业绩、技术创新等方面的综合能力强
    的头像 发表于 09-12 16:29 577次阅读

    LabVIEW调用C#编写的.NET类库

    本文主要是LabVIEW无法调用回调函数dll的问题的解决方法,也介绍了LabVIEW调用C#库的方法
    的头像 发表于 09-06 17:43 4560次阅读
    LabVIEW调用<b class='flag-5'>C#</b>编写的.NET类库

    集成电路是现代电子信息技术的基础

    集成电路是现代电子信息技术的基础 随着科技的不断发展,集成电路技术已成为现代电子信息技术的基础之一。它的应用范围已经涉及到电子、通信、计算机、军事等行业,已经为人们的生活和工作带来了极大的便利
    的头像 发表于 08-29 16:25 1428次阅读

    2023年国家级高职学校信息技术教师能力培训会圆满举行

    2023年国家级高职学校信息技术教师能力培训会圆满举行
    的头像 发表于 07-31 22:56 450次阅读
    2023年国家级高职学校<b class='flag-5'>信息技术</b>教师能力培训会圆满举行

    中科驭数成为证券基金行业信息技术应用创新知识库首批合作厂商!

    7月20日,证券基金行业信息技术应用 创新中心与中国信息通信研究院携手合作,正式上线了行业信息技术应用创新知识库, 旨在做好对行业信息技术应用创新工作的支撑,加强产业侧和行业机构之间的
    的头像 发表于 07-21 18:50 378次阅读
    中科驭数成为证券基金行业<b class='flag-5'>信息技术</b>应用创新知识库首批合作厂商!