【问题标题】:GetExitCodeProcess return 1GetExitCodeProcess 返回 1
【发布时间】:2015-03-04 02:48:59
【问题描述】:

我有一个使用 CreateProcess 的 MFC 应用程序,然后调用 GetExitCodeProcess 来获取退出代码。但是 GetExitCodeProcess 返回 1 并且失败。

关于我的应用程序的更多详细信息 -

我的应用程序首先运行两个进程是 bat 文件,成功完成第一个进程后,我创建了第二个进程,即 vb 脚本。两者都在自动化环境中运行。该脚本仅包含一个消息框。

我的第二个进程失败,GetExitCodeProcess() 返回错误 1。

当我以相反的顺序运行脚本时,例如第一个作为 vbscript 和第二个作为 bat 文件,两者都成功执行。

我无法理解为什么我的 VB 脚本失败并显示错误代码 1?

请帮忙。提前致谢!

乔蒂

【问题讨论】:

  • 问题出在你的VB脚本的第63行......可能。
  • 向我们展示您的脚本。
  • 我的 VB 脚本包含代码 --> 'vbscript msgbox "test" 但我已经通过在自动化环境中运行脚本进行了验证。它工作正常。但是当我通过我的应用程序运行它时,它返回错误 1。

标签: vbscript mfc


【解决方案1】:

正如GetExitCodeProcess() return 1 when process is not yet finished 中所说,GetExitCodeProcess 返回一个BOOL 来表示成功或失败。进程返回码在第二个参数中返回给GetExitCodeProcess

【讨论】:

    【解决方案2】:

    非常感谢您查看我的问题并尝试回答。 我已经解决了这个问题,因此想分享解决方案。

    在我的应用程序中,我使用“cscript”作为命令行参数执行 vb 脚本。 当我将该参数更改为“wscript”时,它提示我文件名.vbs 不存在。

    然后我知道进程正在执行,但它没有获取 vb 脚本文件,因此进程失败,GetExitCodeProcess 作为返回值 = 1

    这个问题不明白,因为我使用的是 cscript。然而, 'cscript' 完全在命令行中运行,非常适合非交互式脚本。 'wscript' 会弹出 Windows 对话框供用户交互。 因此,当我使用 wscript 时,我明白了根本原因。

    这个问题的解决方案是我检查了vbscript文件是否存在。只有当文件存在时它才会继续,直到那个,应用程序等待创建 vbscript 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      • 2018-08-10
      • 2013-10-27
      • 2016-07-28
      相关资源
      最近更新 更多