是否有一个Windows子系统应用程序的方式来提供可选的控制台输出?(Is there a way

2019-10-18 17:08发布

我有一个Windows应用程序,应用程序,通常GUI,仅是并宣布Windows子系统。 启动时它不会打开控制台窗口。

唉,我想提供更多的控制台输出,当应用程序恰好是从控制台窗口启动(比如,从互动CMD.EXE)。

是否有检测,如果一些进程“环比上涨”具有开放的控制台,并连接到控制台的方法吗?

我发现的最接近的是一种方法,明确打开一个GUI应用程序控制台 ,但我不想打开控制台,如果没有一个已经存在。

Answer 1:

乍看之下,好像AttachConsole()函数将让你连接到你的父进程的控制台:

AttachConsole(ATTACH_PARENT_PROCESS);

如果进程实际上并没有一个控制台的功能将失败, ERROR_INVALID_HANDLE 。 如果你的父进程不再存在的功能也将失败。 如果失败的话,那么你可以调用AllocConsole()创建自己的。

我从来没有试过这种所以真的不知道这是否会工作或没有:)



文章来源: Is there a way for a windows-subsystem application to offer optional console output?