A已阅读no console hooks allowed,但需要观看活动控制台窗口的标题。这很奇怪,但控制台窗口是一个窗口。 (没有消息泵并分配给另一个进程。我已经在那里,不记得在哪里)但是资源管理器可以看到它并在任务栏中显示标题。它的机械化或用于观看实际控制台窗口标题的任何可用解决方案是什么。
答案 0 :(得分:0)
控制台窗口确实与其他任何窗口一样。您可以使用EnumWindows
枚举顶级窗口。或者,您可以使用任何其他机制来查找与控制台应用程序关联的顶级窗口。您可以使用GetWindowText
阅读其标题,就像使用任何其他顶级窗口一样。
您链接的问题与您的问题完全无关。另一个问题询问为什么SetWindowsHookEx
从控制台应用程序失败。嗯,那是因为控制台应用程序没有消息泵。如果控制台应用程序开始发送消息,那么SetWindowsHookEx
将正常工作。但正如我所说,这个问题与这个问题无关。
好的,现在我从你的评论中看到你为什么要谈论钩子。您想使用钩子来检测窗口的创建和销毁。使用CBT钩子。只需确保它在泵消息中运行的线程。
请注意,您不需要使用主线程来管理挂钩。在工作线程中可能更方便。
答案 1 :(得分:0)
观看顶级窗口标题比EnumWindows更好的方法是重复使用它:
HWND hwnd = GetForegroundWindow();
if( hwnd ) {
// foreground window can be NULL in certain circumstances
GetWindowText( hwnd, buff, length );
}
每个时间间隔