我正在编写一个应用程序来检查另一个应用程序的退出代码.我正在监视的应用程序可能已在运行,因此我正在使用Process.GetProcessesByName检查它.如果它存在,我在调用WaitForExit后检查退出代码,但是当我这样做时,我得到...
![](https://oss.womengda.net/imgfile/2309/1E39A44Y24P-12F1.jpg)
我正在编写一个应用程序来检查另一个应用程序的退出代码.我正在监视的应用程序可能已在运行,因此我正在使用Process.GetProcessesByName检查它.如果它存在,我在调用WaitForExit后检查退出代码,但是当我这样做时,我得到一个异常:
“此过程未启动过程,因此无法确定所请求的信息.”
如果我启动进程(如果它还没有运行)那么它不会给我异常.
(Windows 8.1)
那么当我没有开始这个过程时,如何找出ExitCode是什么?我能想到的唯一选择是在退出时将输出代码写入文本文件并在…中读取它
解决方法:
System.Diagnostics.Process公开将EnableRaisingEvents设置为true后可以访问的事件:
int processId = 0; // TODO: populate this variable
var proc = System.Diagnostics.Process.GetProcessById(processId);
proc.EnableRaisingEvents = true;
proc.Exited += ProcessEnded;
事件处理程序
private void ProcessEnded(object sender, EventArgs e)
{
var process = sender as Process;
if (process != null)
{
var test = process.ExitCode;
}
}
变量测试现在包含退出代码.
在Windows 8.1上测试过
本文标题为:c# – 如何获取正在运行的进程的ExitCode
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
- Unity3D实现渐变颜色效果 2023-01-16
- .NET CORE DI 依赖注入 2023-09-27
- WPF使用DrawingContext实现绘制刻度条 2023-07-04
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
- Unity Shader实现模糊效果 2023-04-27
- user32.dll 函数说明小结 2022-12-26
- 如何使用C# 捕获进程输出 2023-03-10
- 在C# 8中如何使用默认接口方法详解 2023-03-29
- c# 模拟线性回归的示例 2023-03-14
- Oracle中for循环的使用方法 2023-07-04