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 的进程当前未运行。"
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
C#实现关闭其他程序窗口或进程代码分享
在进行winform开发过程中有时候会需要关闭其他程序或者关闭进程,以前写过一篇相关介绍的文章,今天有同事问起来,于是在次翻出来和大家分享一下. 下面介绍我所知的两种方法,应该对大家有帮助,如果有朋友知道其他的方法,谢谢共享一下. 方法1 ProcName 需要关闭的进程名称 private bool closeProc(string ProcName) { bool result = false; System.Collections.ArrayList procList = new Syst
-
C#获取任务栏显示进程的方法
本文实例讲述了C#获取任务栏显示进程的方法.分享给大家供大家参考.具体实现方法如下: private static void getWindowsInfo() { try { Process[] MyProcesses = Process.GetProcesses(); string[] Minfo = new string[6]; foreach (Process MyProcess in MyProcesses) { if (MyProcess.MainWindowTitle.Length
-
C#结束Excel进程的步骤教学
程序中,系统自带的回收功能无法马上结束Excel进程,需要自己编写程序. 1.项目中,引用添加office COM组件 2.引用接口 3.在程序中 添加代码 [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID); 4.停止Excel应用,这一步不会马上结束Excel进程,但是需要写 5.立即结
-
C#获取所有进程的方法
在使用C#进行相关编程的时候,有时候我们需要获取系统相关的进程信息.那么在C#中如何获取系统的所有进程那?下面请跟小编一起来操作. 1.首先新建一个控制台程序,这里主要是为了方便演示,控制台程序相对比较简单,如下图所示: 2.然后导入进程相关的操作类,主要是diagnostics,如下图所示 3.然后我们调用Process类的GetProcesses方法,获取系统所以进程,注意是一个数组,图下图所示: 4.我们来看一下Process的相关解释说明,把鼠标放上去,看到如下图所示的内容 5.接下来我
-
C#实现强制关闭当前程序进程
/// <summary> /// 运行DOS命令 /// DOS关闭进程命令(ntsd -c q -p PID )PID为进程的ID /// </summary> /// <param name="command"></param> /// <returns></returns> public static string RunCmd(string command) { //實例一個Process類,啟動一個獨立
-
c#进程之间对象传递方法
1. 起源 KV项目下载底层重构升级决定采用独立进程进行Media下载处理,以能做到模块复用之目的,因此涉及到了独立进程间的数据传递问题. 目前进程间数据传递,多用WM_COPYDATA.共享dll.内存映射.Remoting等方式.相对来说,WM_COPYDATA方式更为简便,网上更到处是其使用方法. 而且Marshal这个静态类,其内置多种方法,可以很方便实现字符串.结构体等数据在不同进程间传递. 那么,对象呢?如何传递? 2.序列化 想到了,Newtonsoft.Json.dll这个神器.
-
C#中进程的挂起与恢复
1. 源起: 仍然是模块化编程所引发的需求.产品经理难伺候,女产品经理更甚之~:p 纯属戏谑,技术方案与产品经理无关,芋头莫怪! VCU10项目重构,要求各功能模块以独立进程方式实现,比如:音视频转换模块,若以独立进程方式实现,如何控制其暂停.继续等功能呢? 线程可以Suspend.Resume,c#内置的Process没有此类方法,咋整? 山穷水尽疑无路,柳暗花明又一村.情到浓时清转薄,此情可待成追忆! 前篇描述了进程间数据传递方法,此篇亦以示例演示其间控制与数据交互方法. 2.未公开的AP
-
C# 获取进程退出代码的实现示例
我需要写一个程序,让这个程序知道另一个程序是否正常退出,于是就需要获取这个进程的退出代码 在程序如果需要手动退出,可以设置当前的退出代码 static void Main(string[] args) { Environment.Exit(-100); } 这时的程序运行就退出,同时退出的代码就是 -100 这和 C 语言的在 main 函数返回值一样 在 C# 如果想要实现 C 语言的 main 函数的返回值,是通过调用 Environment.Exit 方法 那么其他程序如何拿到这个程序的退
-
win2003 补丁 iis 应用程序池 无法启动 进程退出代码是 0xffffffff
windows 2003 补丁 KB982666 可能会导致 iis 应用程序池 无法启动 进程退出代码是 0xffffffff 卸载KB982666 既可解决问题 网上传统解法二: IIS 500错误报"进程退出代码是 '0xffffffff'"的处理方案 (此故障只针对windows 2003系统) 故障现象: 1.IIS里面所有的网站访问都是500 错误.进程池启动后,访问服务器的网站,进程池马上自动关闭. 2.系统日志报错:"应用程序池 'AppPool #1' 被自
-
Linux C 获取进程退出值的实现代码
如以下代码所示: 复制代码 代码如下: #include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/wait.h>#include <unistd.h>#include <errno.h>int main(int argc, char *argv[]){ pid_t pid; int stat; in
-
IDEA进程已结束,退出代码-1073741819 (0xC0000005)的bug
由于昨天要写的文章没有写完,于是今天早上我四点半就"自然醒"了,心里面有事,睡觉也不安稳.洗漱完毕后,我打开电脑,正襟危坐,摆出一副要干架的态势,不能再拖了. 要写的文章中涉及到一串代码,关于 Undertow 的一个入门示例,贴出来大家看一下. public class UndertowTest { public static void main(final String[] args) { Undertow server = Undertow.builder() .addHttpL
-
vue获取token实现token登录的示例代码
使用token做登录验证的思路大致如下: 1.在第一次登录的时候前端调用后端的接口,把用户名和密码传给后端. 2.后端收到请求,验证用户名和密码,验证成功后,返回给前端一个token值. 3.前端收到后端传给的token值,将token存储在本地 loaclStorage和vuex中.(本次项目用的是vue框架,使用了vuex全局状态管理) 4.前端每次路由跳转,就判断localStorage中是否有token,如果没有就跳转登录页面,如果有就跳转到相应的页面. 5.分装一公用的请求接口方法,每
-
Java异常退出条件的判断示例代码
无论是功能性代码还是算法性代码,程序都是一系列流程的合集 既然是流程就分为:一般流程和异常流程: 一般流程保证了基本功能: 异常流程则是对程序稳定性的保证,不能因为一些非法输入,项目就挂了: 注意,布尔表达式的先后顺序,有时不可以交换 if (null == instance || instance.isEmpty()) 0. 常见异常退出条件 参数为空: 表示长度,表示索引的整型为负数,或者超出待索引数组或容器的范围: 1. String 的 startsWith 函数 首先来看 String
-
Java获取电脑真实IP地址的示例代码
/** * @author yins * @date 2018年8月12日下午9:53:58 */ import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; /** * 获取本地真正的IP地址,即获得有线或者无线WiFi地址. * 过滤虚拟机.蓝
-
vue使用exif获取图片旋转,压缩的示例代码
<template> <div> <input type="file" id="upload" accept="image" @change="upload" /> </div> </template> <script> export default { data() { return { picValue:{}, headerImage:'' }; },
-
Python获取B站粉丝数的示例代码
要使用代码,需要安装Python 3.x,并且要安装库,在cmd输入pip install requests json time 复制代码,修改最上方变量改成你自己的UID,保存为xxx.py,运行就可以了 用于学习了解的核心代码: import requests import json bilibili_api = requests.get("http://api.bilibili.com/x/relation/stat?vmid=1") # 访问网址,数据存到变量,1是用户UID
-
Python进程,多进程,获取进程id,给子进程传递参数操作示例
本文实例讲述了Python进程,多进程,获取进程id,给子进程传递参数操作.分享给大家供大家参考,具体如下: 线程与线程之间共享全局变量,进程之间不能共享全局变量. 进程与进程相互独立 (可以通过socket套接字实现进程间通信,可以通过硬盘(文件)实现进程通信,也可以通过队列(Queue)实现进程通信) 子进程会拷贝复制主进程中的所有资源(变量.函数定义等),所以子进程比子线程耗费资源. demo.py(多进程): import threading # 线程 import time impo
随机推荐
- 按键精灵应用手记
- 用Java打印九九除法表代码分析 原创
- 浅谈Java中static和非static的区别
- iOS自定义button抖动效果并实现右上角删除按钮
- Java 8 新特性终极版指南详解
- Windows上使用virtualenv搭建Python+Flask开发环境
- ASP.NET中常用的用来输出JS脚本的类
- Python使用xlrd模块操作Excel数据导入的方法
- Python使用正则匹配实现抓图代码分享
- Android编程实现应用程序开机自启动的方法
- Android滑动冲突的完美解决
- javascript利用apply和arguments复用方法
- node.js中的path.sep方法使用说明
- linux修改tomcat默认访问项目的具体步骤(必看篇)
- 对象的类型:本地对象(1)
- linux 系统忘记密码的快捷解决方法(图文详解)
- C#实现简单的井字游戏实例
- 简单谈一谈Java中的Unsafe类
- mall整合SpringTask实现定时任务的方法示例
- MySQL 截取字符串函数的sql语句