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

    文章

    6104

    浏览量

    36371
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    佛瑞亚如何通过信息技术推动业务增长

    在数字化、信息化的浪潮下,信息技术已经不仅是后台工具,更成为驱动企业发展的关键力量。本期Women Inspiring Mobility,我们采访了佛瑞亚中国区信息技术总监马瑛,了解她和团队如何将
    的头像 发表于 07-29 14:00 ?276次阅读

    飞腾主板为信产业发展提高硬实力

    信息技术飞速发展的当下,信产业已成为我国实现科技自立自强、保障国家信息安全的关键领域。信,即信息技术应用创新,其核心目标是实现
    的头像 发表于 07-22 18:20 ?229次阅读

    DEKRA德凯成为沙特通信和信息技术设备技术法规认证机构

    近日,DEKRA德凯成功获得沙特标准、计量和质量组织(SASO)认可,正式成为沙特通信和信息技术设备技术法规(Technical Regulation for Communications
    的头像 发表于 07-15 14:27 ?354次阅读

    科普|信是什么?一文读懂“信息技术应用创新”战略

    什么是信?信,即“信息技术应用创新”,是国家推动IT系统自主可控、安全可控的重要战略工程。它不仅是技术层面的创新,更承载着保障国家网络安全、推动产业升级和实现数字主权的重任。简单来
    的头像 发表于 06-13 10:06 ?2652次阅读
    科普|信<b class='flag-5'>创</b>是什么?一文读懂“<b class='flag-5'>信息技术</b>应用创新”战略

    施耐德电气赢计划第六季正式启动

    由工业和信息化部国际经济技术合作中心与施耐德电气共同主办的赢计划第六季正式启动
    的头像 发表于 06-04 14:17 ?444次阅读

    2025第二届教育信息技术应用创新大赛启动,诚迈科技邀您挑战!

    NEWS为进一步落实建设网络强国和教育强国的战略部署,推动各级教育行政部门及高校信息技术应用创新能力提升,培养实战型创新人才。诚迈科技联合龙芯中科、太初元碁在2025第二届教育信息技术应用创新大赛
    的头像 发表于 05-13 17:24 ?694次阅读
    2025第二届教育<b class='flag-5'>信息技术</b>应用创新大赛<b class='flag-5'>启动</b>,诚迈科技邀您挑战!

    玩转C#/LABVIEW,斯撩

    **labview软件开发 C#软件开发 C#自定义控件Labview调用 labview和C#组合开发** 斯撩,斯撩
    发表于 04-02 22:44

    YSUNG友上推出信版超高频读写器C200G

    概念期(2006年至2015年):这一阶段,信的概念开始形成,国家通过一系列政策和规划,如《国家中长期科学和技术发展规划纲要(2006-2020年)》等,推动信息技术的发展。2008年的微软黑屏事件及2013年的棱镜门事件进一
    的头像 发表于 02-17 10:03 ?521次阅读

    龙芯中科荣获2024年度信息技术应用创新工作委员会卓越贡献成员单位

    近日,中国电子工业标准化技术协会信息技术应用创新工作委员会(以下简称“信工委会”)在北京召开2024年度工作总结座谈会暨信“大比武”总结大会。中国工程院院士、信
    的头像 发表于 01-23 10:50 ?734次阅读

    芯盛智能荣获2024年信息技术应用创新工作委员会卓越贡献成员单位

    日前,中国电子工业标准化技术协会信息技术应用创新工作委员会(以下简称 “信工委会”)2024 年度总结座谈会于北京隆重举行。此次会议对在信工作中作出突出贡献的成员单位予以表彰。江苏
    的头像 发表于 01-20 09:56 ?675次阅读

    飞腾助力首届教育信息技术应用创新大赛圆满落幕

    近日,由中国教育技术协会主办,教育部教育管理信息中心教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信工委会支持,北京航空航天
    的头像 发表于 12-24 09:57 ?544次阅读

    有方科技参编的信息技术团体标准发布

    近日,有方科技参编的《信息技术产品供应链成熟度 共性指标 第1部分:企业背景评价》《信息技术产品供应链成熟度 共性指标 第2部分:技术掌控评价》《信息技术产品供应链成熟度 共性指标 第
    的头像 发表于 12-23 10:44 ?641次阅读

    龙芯中科助力2024首届教育信息技术应用创新大赛成功举办

    近日,2024首届教育信息技术应用创新大赛在北京航空航天大学成功举办。本次大赛由中国教育技术协会主办,教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信
    的头像 发表于 12-19 17:02 ?598次阅读

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 ?1027次阅读

    梯度科技入选2023年信息技术应用创新解决方案名单

    日前,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)在天津举办2024信息技术应用创新发展大会暨解决方案应用推广大会。会上正式公布了2023年
    的头像 发表于 09-09 16:29 ?798次阅读