title author date CreateTime categories
C# 获取进程退出代码
lindexi
2019-08-31 16:55:58 +0800
2019-02-13 09:24:58 +0800
C#

我需要写一个程序,让这个程序知道另一个程序是否正常退出,于是就需要获取这个进程的退出代码

在程序如果需要手动退出,可以设置当前的退出代码

        static void Main(string[] args)
{
Environment.Exit(-100);
}

这时的程序运行就退出,同时退出的代码就是 -100 这和 C 语言的在 main 函数返回值一样

在 C# 如果想要实现 C 语言的 main 函数的返回值,是通过调用 Environment.Exit 方法

那么其他程序如何拿到这个程序的退出代码?

需要其他程序先拿到这个程序的进程,如果是在其他程序启动这个程序,那么通过 Process 就可以拿到

如我有两个程序,一个是控制台程序,这个控制台程序是 控制台.exe 还有一个 WPF 程序,通过 WPF 程序打开控制台程序,然后拿到控制台程序的退出代码

        private Process _process;

        public MainWindow()
{
InitializeComponent();
var process = new Process {StartInfo = new ProcessStartInfo("控制台.exe")};
_process = process;
process.Start();
}

在 WPF 程序的按钮按下尝试通过 _process.ExitCode 请看代码

通过这个方法就可以拿到启动的进程的返回值,如果不是在 WPF 启动控制台程序,也可以在进程退出之前使用下面代码拿到进程

 var process = Process.GetProcessById(控制台进程);

如果在进程退出之后才尝试去获取进程就会出现下面代码

System.ArgumentException:“ID 为 xx 的进程当前未运行。”

2019-8-31-C#-获取进程退出代码的更多相关文章

  1. C# 获取进程退出代码

    我需要写一个程序,让这个程序知道另一个程序是否正常退出,于是就需要获取这个进程的退出代码 在程序如果需要手动退出,可以设置当前的退出代码 static void Main(string[] args) ...

  2. 【转】iis解决应用程序池**提供服务的进程意外终止进程ID是**。进程退出代码是'0x80'

    转自:http://blog.sina.com.cn/s/blog_56a68d5501013xdd.html 我们公司旗下的红黑互联会遇到这种问题 事件类型: 警告事件来源: W3SVC事件种类: ...

  3. java代码中获取进程process id(转)

    另一方面,线程ID=进程ID+内部线程对象ID并不成立,    参考: blog.csdn.net/heyetina/article/details/6633901     如何在java代码中获取进 ...

  4. IDEA惊天bug:进程已结束,退出代码-1073741819 (0xC0000005)

    由于昨天要写的文章没有写完,于是今天早上我四点半就"自然醒"了,心里面有事,睡觉也不安稳.洗漱完毕后,我打开电脑,正襟危坐,摆出一副要干架的态势,不能再拖了. 要写的文章中涉及到一 ...

  5. 转载:进程退出状态--waitpid status意义

    最近遇到一个进程突然退出的问题,由于没有注册signalhandler所以没有捕捉到任何信号. 但是从log中看到init waitpid返回的status为0x008b,以前对status不是很了解 ...

  6. Linux进程退出详解(do_exit)--Linux进程的管理与调度(十四)

    Linux进程的退出 linux下进程退出的方式 正常退出 从main函数返回return 调用exit 调用_exit 异常退出 调用abort 由信号终止 _exit, exit和_Exit的区别 ...

  7. Linux常用获取进程占用资源情况手段

    测试环境:Ubuntu14.04 1.  获取进程ID号 ps -aux | grep your_process_name 例如: xxx@xxx:~$ ps -e |grep Midlet|awk ...

  8. TODO:Golang Linux进程退出说明

    TODO:Golang Linux进程退出说明 Golang使用os.Exit(code)进程退出导致当前程序退出并返回给定的状态代码.传统上,code代码为零表示成功退出,非零错误退出. sysca ...

  9. C# 获取进程或线程的相关信息

    信息来自: http://blog.163.com/kunkun0921@126/blog/static/169204332201293023432113/ using System; using S ...

  10. 枚举PEB获取进程模块列表

    枚举进程模块的方法有很多种,常见的有枚举PEB和内存搜索法,今天,先来看看实现起来最简单的枚举PEB实现获取进程模块列表. 首先,惯例是各种繁琐的结构体定义.需要包含 ntifs.h 和 WinDef ...

随机推荐

  1. 记录-JavaScript常规加密技术

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 当今Web开发中,数据安全是一个至关重要的问题,为了确保数据的安全性,我们需要使用加密技术.JavaScript作为一种客户端编程语言,可 ...

  2. Redis源码学习(1)──字符串

    redis 版本:5.0 本文代码在Redis源码中的位置:redis/src/sds.c.redis/src/sds.h 源码整体结构 src:核心实现代码,用 C 语言编写 tests:单元测试代 ...

  3. KingbaseES V8R6集群运维案例之---sys_rewind应用分析

    ​ 案例说明: sys_rewind是用于在数据库cluster的时间线分叉以后,同步一个 KingbaseES 数据库cluster 和同一数据库cluster另一份拷贝的工具.一种典型的场景是在失 ...

  4. Web、Android等程序开发中src引入外部文件和资源的方法总结

    方法一:使用相对于当前文件(源文件)的相对路径 使用 ../ 对于这个例子来说 ../ 把路径带到了项目根目录的下一级目录 1 <script src="../static/js/wo ...

  5. #树形dp#洛谷 3687 [ZJOI2017]仙人掌

    题目 给定一个简单无向连通图,问有多少种加边方案使得这个图变成简单仙人掌. 分析 首先找到一棵生成树,考虑其它非树边所对应的树的路径上的边最多只能用一次, 这可以用树上差分做,如果一个点到其父节点的边 ...

  6. CentOS 9 x64 使用 Nginx、Supervisor 部署 Go/Golang 服务

    前言 在 CentOS 9 x64 系统上,可以通过以下步骤来部署 Golang 服务. 1. 安装必要的软件包 安装以下软件包: Golang:Golang 编程语言 Nginx:Web 服务器 S ...

  7. OpenHarmony定义扩展组件样式:@Extend装饰器

      在前文的示例中,可以使用@Styles用于样式的扩展,在@Styles的基础上,我们提供了@Extend,用于扩展原生组件样式. 说明: 从API version 9开始,该装饰器支持在ArkTS ...

  8. 【开源三方库】Aki:一行代码极简体验JS&C++跨语言交互

      开源项目 OpenHarmony 是每个人的 OpenHarmony 一.简介 OpenAtom OpenHarmony(以下简称"OpenHarmony")的前端开发语言是A ...

  9. 编译opencv: cmake编译opencv,不带版本号

    在Linux上使用cmake编译OpenCV,默认都是协议版本号的,一般会生成三个文件,一个so和两个软链接. 在部分系统上移植的时候,软链接会成问题,所以需要重新编译OpenCV,解决软链接的问题. ...

  10. innoSetup打包文件编写模板

    现在打包主要是使用 innosetup 这个软件来进行打包,支持录制脚本和手动编写脚本,比较好用. 此文章主要记录手写脚本,便于后期查询,借鉴. 文档: inno setup :https://blo ...