如何在Windows中编写一个最小化系统托盘的控制台应用程序?

sep*_*sep 4 c c++ windows visual-c++

我有一个Visual C++控制台应用程序(即子系统:控制台),它可以向控制台输出有用的诊断消息.

但是,我希望在大多数情况下保持应用程序最小化,而不是最小化到任务栏,在系统托盘上显示为一个漂亮的图标.我还想在单击系统托盘图标时恢复控制台.

我该如何更改程序来执行此操作?

Tam*_*ege 14

这将是一个丑陋的黑客.

首先,您必须检索hWnd/ hInstance您的控制台应用程序.现在,我只能想出一个方法:

  • 用.创建一个Guid CoCreateGuid()
  • 将其转换为字符串
  • 用这个guid设置控制台窗口的标题 SetConsoleTitle()
  • 找到hWnd你的窗口与Guid作为瓷砖FindWindow()
  • 从这一点开始,你可以从通常的方式做到这一点.有关详细信息,请访问http://www.gidforums.com/t-9218.html.
  • 一旦完成,不要忘记将控制台窗口重命名为原始标题.

正如你所看到的,即使这是可能的,但这是一个可怕而痛苦的解决方案.请不要这样做.请不要将控制台应用程序最小化到系统托盘.它不是您应该在Windows API中执行的操作.