Windows:如果不从命令行运行,是否可以访问运行C ++代码的进程的返回值?

时间:2016-12-21 14:58:11

标签: windows

我知道您可以使用命令行访问进程的返回值,或者让一个进程创建并运行另一个进程。但是,如果我只是制作* .exe并双击它,返回值是否可以访问我可以访问的任何地方?如果是的话,在哪里?我是否可以更改任何设置,以便在我的进程返回EXIT_FAILURE时,Windows将以不同于返回EXIT_SUCCESS的方式处理事物?

1 个答案:

答案 0 :(得分:2)

不,我认为没有任何东西能保留以这种方式启动的流程的退出价值。双击快捷方式或可执行文件时,资源管理器会创建该进程,然后立即关闭句柄,因为它不再关心会发生什么。

您可以编写一个程序,在程序运行时调用感兴趣的进程OpenProcess。 (它必须有一种方法在进程退出之前发现进程ID。)OpenProcess将为您提供进程的句柄。然后程序可以等待该句柄。当进程退出时,程序可以使用句柄来检索状态代码并执行您希望它执行的任何操作。