我有一个使用CreateProcess的MFC应用程序,然后调用GetExitCodeProcess来获取退出代码。但GetExitCodeProcess返回1并且失败。
关于我的申请的更多细节 -
我的应用程序首先运行两个进程是bat文件,在成功完成第一个进程后,我创建了第二个进程,即vb脚本。两者都在自动化环境中运行该脚本只包含一个消息框。
我的第二个进程失败,错误1由GetExitCodeProcess()返回。
当我以相反的顺序运行脚本时,例如vbscript和第二个作为bat文件,两者都成功执行。
我无法理解为什么我的VB脚本失败并显示错误代码1?
请帮忙。提前谢谢!
乔蒂
答案 0 :(得分:0)
如GetExitCodeProcess() return 1 when process is not yet finished GetExitCodeProcess
中所述,返回BOOL以表示成功或失败。进程返回码在第二个参数中返回GetExitCodeProcess
。
答案 1 :(得分:0)
非常感谢您查看我的查询并尝试回答它。 我已经解决了这个问题,因此想共享解决方案。
在我的应用程序中,我使用'cscript'作为命令行参数执行vb脚本。 当我将该参数更改为'wscript'时,它会提示我filename.vbs不存在的消息。
然后我理解该进程正在执行但它没有获取vb脚本文件,因此进程因GetExitCodeProcess失败而返回值= 1
由于我使用的是cscript,因此无法理解此问题。然而, 'cscript'完全在命令行中运行,非常适合非交互式脚本。 并且'wscript'将弹出Windows对话框以进行用户交互。 因此,当我使用wscript时,我理解了根本原因。
此问题的解决方案是我检查了vbscript文件是否存在。只有文件存在才会继续,直到那个应用程序等待创建vbscript文件。