如何最小化控制台窗口
How to minimize console window?
我正在运行一个c++控制台应用程序,有一段时间,
我想最小化我的应用程序正在运行的窗口。如
。我从cmd启动myApp.exe。然后在新窗口中启动。那么,哪些库可以最小化应用程序运行的窗口呢?
应用程序没有任何GUI
我想你的应用程序是在Windows上运行的(这在不同的操作系统之间是不可移植的)。
你必须首先用GetConsoleWindow()函数获得控制台窗口的句柄,然后你可以使用ShowWindow()来隐藏/显示它。别忘了包括windows.h
:
ShowWindow(GetConsoleWindow(), SW_MINIMIZE);
代替SW_MINIMIZE
,你可以使用SW_HIDE
来完全隐藏它(但它会在应用程序刚刚启动时闪烁可见)。
注意,如果您可以控制进程的创建,您可以将其创建为DETACHED_PROCESS
:分离的控制台应用程序没有控制台窗口。CreateProcess()
函数还有其他您可能感兴趣的解决方法(例如,您可以创建用于输出…的子进程)
UPDATE:作为Patrick的回答的后续,你可以将子系统从Console更改为Windows,然后,如果你需要写控制台,使用AllocConsole创建一个新的:
if (AllocConsole()) {
printf("Now I can print to console...n");
FreeConsole();
}
另一个选择是更改
属性……|配置属性|链接器|系统|子系统从<<p> strong>控制台, Windows 。但是,您需要添加一个WinMain()入口点,例如:
int __stdcall WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{ int argc = 0;
LPWSTR* argv = CommandLineToArgvW(GetCommandLine(), &argc);
return Main(argc, argv);
}
假设unicode。为了避免混淆,我将控制台的wmain()函数重命名为类似Main()的东西,如上所述。当然,printf不再有可写入的控制台。
相关文章:
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 如何从 Win32 C++ 应用程序输出到父控制台窗口?
- 如何获取控制台窗口的宽度?
- 是否可以从控制台应用程序使用 C++/WinRT 创建窗口?
- 在C++中隐藏键盘记录器的控制台窗口
- 如何在 Win32 控制台应用程序中注册不可见的窗口类?
- C++ 如何在 OpenGL 程序中远程调用控制台窗口
- 为什么调试时没有显示控制台窗口
- 有没有办法像动画一样移动控制台窗口?
- 如何在C++中居中输出控制台窗口
- 控制台窗口未在开发C++中打开?即使也有 getch() ?
- QTextEdit 提升为构建控制台窗口
- 如何拒绝一个叫做的过程以写入继承的控制台窗口
- Visual C 关闭文本文件和打开新的控制台窗口
- 有没有办法为使用 Boost 生成的进程创建新的控制台窗口
- C++:显示控制台窗口的输出
- C++:如何在控制台窗口中显示结果
- (C++)控制台窗口保持立即关闭,即使我在Visual Studio中是CTRL + F5
- 在 C 语言中将窗口控制台大小调整为全屏
- 将文本输出到窗口控制台.c++