我需要寫一個程序,讓這個程序知道另一個程序是否正常退出,于是就需要獲取這個進程的退出代碼
在程序如果需要手動退出,可以設置當前的退出代碼
1
2
3
4
|
static void Main( string [] args) { Environment.Exit(-100); } |
這時的程序運行就退出,同時退出的代碼就是 -100 這和 C 語言的在 main 函數返回值一樣
在 C# 如果想要實現(xiàn) C 語言的 main 函數的返回值,是通過調用 Environment.Exit 方法
那么其他程序如何拿到這個程序的退出代碼?
需要其他程序先拿到這個程序的進程,如果是在其他程序啟動這個程序,那么通過 Process 就可以拿到
如我有兩個程序,一個是控制臺程序,這個控制臺程序是 控制臺.exe 還有一個 WPF 程序,通過 WPF 程序打開控制臺程序,然后拿到控制臺程序的退出代碼
1
2
3
4
5
6
7
8
9
|
private Process _process; public MainWindow() { InitializeComponent(); var process = new Process {StartInfo = new ProcessStartInfo( "控制臺.exe" )}; _process = process; process.Start(); } |
在 WPF 程序的按鈕按下嘗試通過 _process.ExitCode 請看代碼
通過這個方法就可以拿到啟動的進程的返回值,如果不是在 WPF 啟動控制臺程序,也可以在進程退出之前使用下面代碼拿到進程
1
|
var process = Process.GetProcessById(控制臺進程); |
如果在進程退出之后才嘗試去獲取進程就會出現(xiàn)下面代碼
1
|
System.ArgumentException:“ID 為 xx 的進程當前未運行。" |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://lindexi.gitee.io/lindexi/post/C-獲取進程退出代碼.html