1

通常は GUI のみで、WINDOWS サブシステムを宣言する Windows アプリケーション アプリケーションがあります。起動時にコンソール ウィンドウを開きません。

残念ながら、アプリケーションがたまたまコンソール ウィンドウから (たとえば、対話型の cmd.exe から) 起動されたときに、追加のコンソール出力を提供したいと思います。

「チェーンの上流」にあるプロセスが開いているコンソールを持っているかどうかを検出し、そのコンソールに接続する方法はありますか?

私が見つけた最も近い方法は、GUIアプリケーションのコンソールを明示的に開く方法ですが、まだコンソールがない場合はコンソールを開きたくありません。

4

1 に答える 1

3

一見すると、このAttachConsole()関数を使用すると、親プロセスのコンソールにアタッチできるように見えます。

AttachConsole(ATTACH_PARENT_PROCESS);

プロセスに実際にコンソールがない場合、関数は で失敗しERROR_INVALID_HANDLEます。親プロセスが存在しなくなった場合も、関数は失敗します。失敗した場合は、呼び出しAllocConsole()て独自のものを作成できます。

私はこれを試したことがないので、実際に機能するかどうかはわかりません:)

于 2013-10-03T20:43:14.933 に答える