我正在编写一个应用程序来检查另一个应用程序的退出代码.我正在监视的应用程序可能已在运行,因此我正在使用Process.GetProcessesByName检查它.如果它存在,我在调用WaitForExit后检查退出代码,但是当我这样做时,我得到...
我正在编写一个应用程序来检查另一个应用程序的退出代码.我正在监视的应用程序可能已在运行,因此我正在使用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
基础教程推荐
猜你喜欢
- winform把Office转成PDF文件 2023-06-14
- ZooKeeper的安装及部署教程 2023-01-22
- C# windows语音识别与朗读实例 2023-04-27
- C#控制台实现飞行棋小游戏 2023-04-22
- unity实现动态排行榜 2023-04-27
- C# 调用WebService的方法 2023-03-09
- 一个读写csv文件的C#类 2022-11-06
- C# List实现行转列的通用方案 2022-11-02
- C#类和结构详解 2023-05-30
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26