gpt4 book ai didi

c++ - 让用户在不退出进程的情况下关闭进程的分配控制台?

转载 作者:行者123 更新时间:2023-11-30 04:23:49 27 4
gpt4 key购买 nike

使用 Visual C++ 中的 Win32 API,我想在 Windows 子系统下创建一个程序,该程序使用 AllocConsole 分配一个控制台并使用 WriteConsole 写入它。但是,如果用户关闭控制台,该进程应继续在后台运行。就目前而言,我无法做到这一点。当在控制台标题栏上按下 X 时,进程退出。

有什么特别的方法吗?

提前致谢!

最佳答案

关键是回应Console Control Event当用户尝试关闭控制台时引发。然后您可以调用 FreeConsole从控制台分离你的程序,并让控制台被销毁。那应该让您的程序继续运行。

附加信息:

如果进程在 HandlerRoutine 退出时终止,那么我的建议没有按预期工作。如果是这种情况,那么您可能会遇到问题。您可以尝试 Hook SC_CLOSE 系统消息,并在传递消息之前在那里执行 FreeConsole。这可能有效,但我不知道如果用户按下 Ctrl+C 或 Ctrl+Break 会发生什么。

问题是控制处理程序退出了进程。可能是在 HandlerRoutine 中调用 FreeConsole 为时已晚。

关于c++ - 让用户在不退出进程的情况下关闭进程的分配控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13168298/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com