Win32控制台问题

Tob*_*ner 5 console winapi native

是否有可能创建一个程序作为控制台应用程序,如果从控制台启动,并作为Windows程序(使用GUI),否则启动?

如果有可能 - 我该怎么做?

托比亚斯

Joh*_*ohn 2

如果您需要该程序充当控制台应用程序(例如,将使用信息打印到控制台),则必须将其编译为控制台应用程序。Windows 应用程序将无法访问控制台,并且 cmd.exe 不会等待它完成后再打印提示并接受下一个命令。

最好的解决方案是有两个版本,一种用于命令行,一种用于 GUI(用户通常通过桌面或开始菜单上的链接运行)。

如果您坚持使用单个二进制文件,您将不得不忍受控制台窗口的出现,至少在短时间内是这样。您可以使用以下命令摆脱控制台窗口

FreeConsole();
Run Code Online (Sandbox Code Playgroud)

如果您的应用程序是附加到控制台的唯一进程,则可以判断您的应用程序是从 GUI 运行的。您可以使用GetConsoleProcessList来查找附加到控制台的进程列表。