我编写了一个应该在后台运行的程序。我尝试编写一些代码,但它们都不起作用。控制台在 Windows 10 中是隐藏的,但在版本 11 中不起作用。我使用的是这个编译器 x86_64-w64-mingw32-gcc
我正在尝试使用此代码:
ShowWindow(GetConsoleWindow(), SW_HIDE)
然后我尝试了这段代码,但结果是一样的:
AllocConsole();
ShowWindow(FindWindowA("ConsoleWindowClass", NULL), 0);
然后我尝试了这段代码,但结果是一样的:
ShowWindow(GetConsoleWindow(),0);
根据博客:Windows 终端现在是 Windows 11 中的默认设置
如果您使用默认的 Windows 终端,则无法隐藏控制台。
我建议您可以尝试在设置中将终端更改为
Windows Console Host
:
根据这篇文章:https://github.com/microsoft/terminal/issues/15311,诸如
ShowWindow(GetConsoleWindow(), SW_HIDE)
之类的东西将不起作用。
Windows 11 上的一种解决方案是使用 conhost:
conhost C:\你的应用程序的路径
这对我来说效果很好。但是,如果您将其设为桌面快捷方式,防病毒软件可能会阻止它。
希望有帮助。