如果从 C# 代码调用,则捕获 EXE 文件中的错误

2023-12-20

我正在从 C# 代码运行 exe 文件,由于某些原因,该 exe 文件中出现错误。它一直等待并最终给出弹出错误“abc.exe已停止工作”等,但它不退出。

 //The below code is calling it successfully
     public bool callExe(string exePath)
            {
                Log("EXE excution Started : " + exePath, INFO_TAG);
                try
                {
                    Process exeProcess = new Process();
                    ProcessStartInfo startInfo = new ProcessStartInfo();
                    startInfo.FileName = exePath;
                    exeProcess.StartInfo = startInfo;
                    startInfo.Arguments = this.prjId.ToString();
                    exeProcess.Start();
                    exeProcess.WaitForExit();
                    int exitCode = exeProcess.ExitCode;
                    return true;
                }
                catch (Exception e)
                {
                    errorCode = EXE_ERROR;
                    return false;
                }
            }

虽然我可以捕获退出代码,但只有当它退出时我才能这样做。


这个链接可能有用https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandarderror%28v=vs.110%29.aspx https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandarderror%28v=vs.110%29.aspx

订阅 ErrorDataReceived 事件并获取错误消息。在此输入链接描述 https://msdn.microsoft.com/en-us/library/system.diagnostics.process.errordatareceived%28v=vs.110%29.aspx

您可以订阅 Process Exit 事件,而不是等待它退出

如果您的 exe 给出某种未处理的异常,您将无法获得确切的错误。 Windows 事件查看器可以帮助您获取错误号和可能的原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果从 C# 代码调用,则捕获 EXE 文件中的错误 的相关文章

  • 用 C# 启动 Windows 服务

    我想启动一个刚刚安装的Windows服务 ServiceBase ServicesToRun if bool Parse System Configuration ConfigurationManager AppSettings RunSe
  • CMake 和 Visual Studio:如何获得快速、安静的命令行构建?

    我有一个 cmake 项目 它成功地完成了我想要的一切 但我有大约 100 个文件 当我只需要重新编译一个文件时 我厌倦了每次看到生成的巨大输出 每个文件 30 行 明确地说 我正在编译cmake build 得到这个结果 我需要传递给编译
  • C 中的复合语句表达式

    下面的代码不起作用 int i void 999 100 添加括号就可以了 为什么 int i void 999 100 还有另一种方法可以完成此类分配 int i void 999 100 是什么让他们与众不同 在这份声明中 int i
  • 泛型与接口的实际优势

    在这种情况下 使用泛型与接口的实际优势是什么 void MyMethod IFoo f void MyMethod
  • 如何“杀死”Pthread?

    我正在学习 Pthreads 并且想知道杀死这样一个对象的最佳方法是什么 在寻找类似的问题后 我无法找到 明确 的答案 但请随时向我指出任何相关问题 我正在使用一个小型客户端服务器应用程序 其中服务器主线程正在侦听套接字上的客户端连接 每次
  • 在桌面应用程序中,类库的连接字符串存储在哪里?我可以在app.config中使用吗?

    我是桌面应用程序开发的新手 目前正在使用分层架构 用户界面 DAL BLL 构建桌面应用程序 在 Web 开发中 我曾经将连接字符串存储在 web config 中 我的类库从那里访问它 请指导我在桌面应用程序中如何以及在何处存储 DAL
  • 使用静态类型代替变量

    当您的项目不使用命名空间时 有什么方法可以告诉编译器使用静态类型而不是变量吗 例如 我有一个名为 User 的类 它具有各种静态和非静态方法 假设调用了其中一个静态方法GetUser 我想称之为User GetUser 方法来自一个方法 该
  • C++ 非类型参数包扩展

    我正在编写由单一类型参数化的模板函数 并且具有可变数量的相同类型 而不是不同类型 的参数 它应该检查第一个值是否在其余值中 我想这样写 include
  • 使用 Selenium for C# 登录 Facebook

    我一直在使用 Selenium C 框架并尝试进行 facebook 登录 但没有任何运气 这是我到目前为止得到的 基于这篇文章 使用 Selenium 测试 Facebook Connect 应用程序 https stackoverflo
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • C 中“for”循环中的两个变量

    我正在编写一些代码 需要在其中使用两个变量for环形 下面的代码看起来没问题吗 它确实给了我预期的结果 for loop 1 offset loop 2 offset 2 loop 1 gt offset 190 loop 2 lt 190
  • 如何防止字符串被截留

    我的理解 可能是错误的 是 在 C 中 当你创建一个字符串时 它会被实习到 实习生池 中 这保留了对字符串的引用 以便多个相同的字符串可以共享操作内存 但是 我正在处理很多很可能是唯一的字符串 一旦完成每个字符串 我需要将它们从操作内存中完
  • 枚举器上的 [[maybe_unused]]

    查看规格 maybe unused http en cppreference com w cpp language attributes 它指出 出现在类 typedef 变量 非静态数据成员 函数 枚举或枚举器的声明中 如果编译器对未使用
  • 套接字:监听积压并接受

    listen sock backlog 在我看来 参数backlog限制连接数量 这是我的测试代码 server initialize the sockaddr of server server sin family AF INET ser
  • C 的“char”使用什么字符集? [复制]

    这个问题在这里已经有答案了 简单的问题 我最近开始用 C 编程 有一个简单的问题 C 编程语言在其 char 类型中使用什么字符集 例如 ASCII 还是取决于软件 操作系统 char 本质上是 1 个字节 主要在所有操作系统上 所以默认情
  • 如何解释“错误C2018:未知字符'0x40'?[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 在编译一些代码时 我收到以下信息 错误 C2018 未知字符 0x40 我想知道如何解决这样的问题 这是我要开始的地方
  • win32 API 和 .NET 框架之间的选择

    我必须开发一个适用于 Windows 的应用程序 该应用程序将能够通过网络摄像头识别手势来控制鼠标 我将使用 vc 2008 进行开发 但我很困惑是使用 NET 框架还是核心 win32 API 性能对于我的应用程序非常重要 根据 Ivor
  • 如何将 Metro 应用部署到桌面?

    我正在尝试将我的 C 应用程序部署到我的 Windows 8 Metro 桌面 我可以在 bin 文件夹中看到部署的文件 但是当我尝试打开它们时 出现以下错误 该应用程序只能在 AppContainer 的上下文中运行 我检查了属性上下文菜
  • 编译器可以报告未知属性的错误吗?即使有范围?

    在N3291 7 6 1 3 5 属性语法和语义 decl attr grammar 关于如何属性是用我读过的源代码写的 使用一个属性范围令牌是有条件支持的 实现定义的行为 and For an 属性标记本国际标准中未指定 该行为是实现定义
  • 致命错误 C1001:编译器中发生内部错误(编译器文件“msc1.cpp”,第 1325 行)

    当我编译代码时 错误指向以下类 该错误在两行上突出显示 如下所示 tm validFrom tm validUntil struct t SslCertData final struct t Contact TCHAR Organizati

随机推荐

  • 如何将字符串写入 Scala Process?

    我启动并运行了一个 Scala 进程 val dir path to working dir val stockfish Process Seq wine dir stockfish 8 x32 exe val logger Process
  • isOrientationSupported 在 IOS 中已弃用

    我收到此错误 但我不知道如何修复它 WARNING
  • 查询嵌套数据的有效方法

    我需要从表中选择许多 主 行 同时还为每个结果返回另一个表中的许多详细行 在没有多个查询的情况下实现这一目标的好方法是什么 一个用于主行 一个用于每个结果以获取详细行 例如 数据库结构如下 MasterTable MasterId BIGI
  • 在 Pandoc Markdown 输出中生成内联而不是列表式脚注?

    当从某种格式 例如 HTML 或 Docx 转换为 Pandoc 中的 Markdown 时 是否可以以内联样式呈现所有脚注 这是主要文本 这是脚注 而不是作为编号引用文档末尾有相应的列表吗 我想将我的 Markdown 文档 从我的论文的
  • Azure DevOps Pipelines - Python - ModuleNotFoundError,尽管 sys.path.append() 或设置 PYTHONPATH

    我正在尝试为我的 python 应用程序运行一些测试 但我无法正确设置路径 以便我的test py可以找到它 我的应用程序的结构如下 repo src main python main module repo tests test py A
  • tf.get_collection 提取一个范围的变量

    I have n 例如 n 3 范围和x 例如 x 4 每个作用域中定义的变量数量 范围是 model generator 0 model generator 1 model generator 2 计算损失后 我想根据运行时的标准从其中一
  • 根据条件删除行

    因此 第 1 列由各种名称组成 如果该列中特定单元格中的名称不属于名称子集 我想删除整行 我尝试使用嵌套的 If 和 For 来遍历行 但事实证明按升序删除行不起作用 现在 我希望 for 循环从最终值开始到初始值 并且我在最后使用了 St
  • addEventListener 匿名函数中的 Javascript 变量范围

    单击每个 div 时 如果单击了 div 1 则应发出警报 1 如果单击了 div 2 则应发出警报 5 我试图使此代码尽可能简单 因为这是在更大的应用程序中需要的
  • 如何在各种环境下使用和配置omniauth与yahoo、google、facebook策略?

    我正在开发一个 Rails 3 2 应用程序 该应用程序将允许用户向多个提供商进行身份验证 雅虎 谷歌 Facebook 和 或 Twitter 我们正在使用omniauth 虽然我了解基本工作流程 但我找不到一个包容性文档来说明应如何配置
  • 重写骨干模型中的 fetch() 方法

    我想重写 Backbone 模型中的默认 fetch 方法 从而仅在需要时调用它 像这样的东西 Account Check Backbone Model extend model Account Item url Settings Url
  • CSS中宽度除以高度得到屏幕比例

    我尝试获取屏幕的比 例 这是我尝试过的CSS 但它不起作用 height calc 50vw calc 1vw 1vh 3 如何获得屏幕宽度除以屏幕高度 Thanks First of all calc is not nestable 1
  • Makefile 找不到 macports 安装的 boost 库

    我刚刚使用 macports 安装了 boost 1 42 0sudo port install boost 一切都很好 现在我有一个项目 我正在尝试使用 makefile 构建 一切都构建得很好 直到涉及到需要 boost 库的文件为止
  • 如何在远程 ssh 连接中本地绘制 R 绘图?

    我目前通过 ssh 连接到一台远程计算机 我在 VIM 中设置了 R 我两边都用ubuntu 当我尝试从 R 绘制某些内容时 它将出现在远程计算机而不是本地计算机上 有什么办法可以在本地制作 R 绘图吗 您可以将 SSH 与 X切换以将图形
  • DIV 左侧垂直滚动条

    是否可以用css将DIV的垂直滚动条放在div的左侧 jscript 怎么样 我有一个简单的用例 所以选择了一个简单的 css 解决方案 div style height 250px div style padding 3px Conten
  • 使用 vanilla JS 添加 CSS 规则的最短方法

    我正在开发一个库 试图将其保持在 1KB 以下 我已经非常接近我的极限了 我需要添加一个 CSS 规则来控制显示隐藏行为 hidden display none important HTML 页面没有任何样式标签 这将是我唯一需要的规则 我
  • 无法从 Windows 注册表运行 vbs 文件

    我有一个调用 vbscript 文件的注册表项 如下所示 右键单击 cur 文件选择 更改光标 选项时将触发该注册表项 C Program Files Cursor Manager CustomCursor vbs 1 2 下面是vbs文件
  • 如何减少 Eclipse Ganymede 的内存使用?

    我使用最新的 Eclipse Ganymede 版本 特别是针对 Java EE 和 Web 开发人员的发行版 我安装了一些额外的插件 例如 Subclipse Spring FindBugs 并删除了所有 Mylyn 插件 我在 Ecli
  • 使用继承与接口的装饰器设计模式

    我想使用继承来实现装饰器设计模式 Decorator extends Component 因为我需要访问组件类的受保护字段 方法 问题在于 Component 类代表一种算法 它在构造时执行一些预处理并保存大量数据 现在 每次装饰组件时 我
  • 如何设置与单击一次应用程序的文件关联?

    我有一个点击一次的应用程序 我有一个关联文件 用于存储应用程序的数据 当用户单击这些文件之一时 我希望它打开单击一次应用程序并加载文件 我可以在发布中设置文件关联 图标和名称设置正确 单击文件将打开应用程序 但应用程序似乎没有传递文件的路径
  • 如果从 C# 代码调用,则捕获 EXE 文件中的错误

    我正在从 C 代码运行 exe 文件 由于某些原因 该 exe 文件中出现错误 它一直等待并最终给出弹出错误 abc exe已停止工作 等 但它不退出 The below code is calling it successfully pu