我有一个Windows应用程序,应用程序,通常GUI,仅是并宣布Windows子系统。 启动时它不会打开控制台窗口。
唉,我想提供更多的控制台输出,当应用程序恰好是从控制台窗口启动(比如,从互动CMD.EXE)。
是否有检测,如果一些进程“环比上涨”具有开放的控制台,并连接到控制台的方法吗?
我发现的最接近的是一种方法,明确打开一个GUI应用程序控制台 ,但我不想打开控制台,如果没有一个已经存在。
我有一个Windows应用程序,应用程序,通常GUI,仅是并宣布Windows子系统。 启动时它不会打开控制台窗口。
唉,我想提供更多的控制台输出,当应用程序恰好是从控制台窗口启动(比如,从互动CMD.EXE)。
是否有检测,如果一些进程“环比上涨”具有开放的控制台,并连接到控制台的方法吗?
我发现的最接近的是一种方法,明确打开一个GUI应用程序控制台 ,但我不想打开控制台,如果没有一个已经存在。
乍看之下,好像AttachConsole()
函数将让你连接到你的父进程的控制台:
AttachConsole(ATTACH_PARENT_PROCESS);
如果进程实际上并没有一个控制台的功能将失败, ERROR_INVALID_HANDLE
。 如果你的父进程不再存在的功能也将失败。 如果失败的话,那么你可以调用AllocConsole()
创建自己的。
我从来没有试过这种所以真的不知道这是否会工作或没有:)