【问题标题】:Visual c++ Hide Console WindowsVisual c++ 隐藏控制台窗口
【发布时间】:2014-02-05 01:35:28
【问题描述】:

我正在为我的应用制作更新程序。我的应用程序是一个 UI 应用程序。我想把它做成一个控制台应用程序,但我不知道如何隐藏它。我使用了这段代码:

HWND hwnd = GetConsoleWindow();
ShowWindow(hwnd, 0);

但是当应用程序运行时,cmd 窗口会出现一秒钟。怎么隐藏?

【问题讨论】:

  • 顺便说一句,正确的值是SW_HIDE,而不是0。如果你不想要控制台窗口,不要把它作为控制台程序链接。改为使用 Windows 子系统。如果您需要控制台,请使用AllocConsole 获取。
  • 如果使用 gcc 则使用 -mwindows 编译程序,或者使用 WinMain 作为入口点。这样控制台根本不会显示。不确定您是否可以在 Visual-C++ 中执行此操作,但值得一试。

标签: c++ console window hide


【解决方案1】:

FreeConsole() api 会为你做到这一点:

BOOL WINAPI FreeConsole(void);

【讨论】:

    【解决方案2】:

    您继续隐藏的控制台窗口有什么好处(除非您正在制作控制台窗口替换,而您没有制作)?

    隐藏控制台窗口的最简单方法是首先不创建它,即,简单地不将 exe 链接为控制台子系统可执行文件,而是链接为 GUI(又名“windows”)子系统可执行文件.

    这样做的一个结果是标准的 Windows 命令解释器不会等待程序完成,但仅此而已。


    另一种选择是通过一个实用程序运行您的程序,该实用程序在隐藏控制台窗口的情况下启动它。我想到了 VBScript 和 Windows Script Host。但这将是一个相对而言极端的复杂情况,以便抑制一个仅因您要求而存在的窗口......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-19
      • 2019-07-22
      • 2012-10-14
      • 2010-10-10
      • 1970-01-01
      • 2018-01-14
      • 2011-04-03
      相关资源
      最近更新 更多