我编写了一个Visual C ++控制台应用程序(即子系统:控制台),可以向控制台输出有用的诊断消息。
但是,我希望在大多数情况下保持应用程序最小化,而不是最小化到任务栏,在系统托盘上显示为一个漂亮的图标。我还想在单击系统托盘图标时恢复控制台。
如何更改程序以执行此操作?
答案 0 :(得分:14)
这将是一个丑陋的黑客。
首先,您必须检索控制台应用程序的hWnd
/ hInstance
。现在,我只能想出一个方法:
CoCreateGuid()
SetConsoleTitle()
hWnd
FindWindow()
正如你所看到的,即使这是可能的,但这是一个可怕而痛苦的解决方案。请不要这样做。请不要将控制台应用程序最小化到系统托盘。 这不是您应该在Windows API中执行的操作。
答案 1 :(得分:4)
您可能想要编写一个单独的gui来充当日志阅读器。然后,您会发现将此最小化到托盘更容易。它还可以让你做一些你可能会觉得有用的其他东西,例如更改哪些级别的日志消息在运行中可见。
答案 2 :(得分:1)
要了解控制台,您有两种选择:
答案 3 :(得分:0)
可能你最好的办法是创建一个"Message-only window"(没有可见窗口的消息队列)来接收通知区消息。
答案 4 :(得分:0)
使用GUID的答案是完全荒谬的(完全没有意义) Console hWnd当然由GetConsoleWindow()(!)
给出