Windows-subsystem应用程序是否有办法提供可选的控制台输出?

时间:2013-10-03 20:34:09

标签: winapi console windows-console

我有一个Windows应用程序应用程序,通常只有GUI,并声明WINDOWS子系统。启动时它不会打开控制台窗口。

唉,当应用程序恰好从控制台窗口启动时(例如,来自交互式cmd.exe),我想提供额外的控制台输出。

有没有办法检测某个进程“up the chain”是否有一个打开的控制台,并附加到该控制台?

我找到的最近的是a way to explicitly open a console for a gui application,但如果没有控制台,我不想打开控制台。

1 个答案:

答案 0 :(得分:3)

乍一看似乎AttachConsole()函数可以让你附加到父进程的控制台:

AttachConsole(ATTACH_PARENT_PROCESS);

如果进程实际上没有控制台,则该函数将失败并显示ERROR_INVALID_HANDLE。如果父进程不再存在,该函数也将失败。如果失败,您可以致电AllocConsole()创建自己的。

我从未尝试过这样做,所以实际上并不知道它是否会起作用。)