有没有像C#中的“FormClosing”,但在C++中作为控制台关闭的事件,我可以在控制台关闭之前执行一些代码? (在我的情况下,我想在控制台完全关闭之前创建一个包含用户输入的目录)。C++中是否存在“关闭控制台”这样的事件?
回答
我的猜测是,你想要得到的事件点击[X]
BOOL WINAPI HandlerRoutine(DWORD eventCode)
{
switch(eventCode)
{
case CTRL_CLOSE_EVENT:
// do your thing
return FALSE;
break;
}
return TRUE;
}
,你找什么时候?
您还需要启用处理程序:
int main()
{
SetConsoleCtrlHandler(HandlerRoutine , TRUE);
getch();
}
正是我在找什么。不过,我对WinAPI相当陌生,而且我很想知道,我的程序中该如何精确调用此函数? – user2699298
我的不好。编辑+链接到MSDN :) – deW1
所以,我必须“做我的事情(创建目录)”在你说'//做你的事情',我只是在我的主程序'SetConsoleCtrlHandler();'它会不断地检查用户是否点击了[X],对吗? – user2699298
如果你想关闭控制台,那么你可以使用FreeConsole();
如果再进一步想再次打开控制台,您可以使用AllocConsole();
“我”不想关闭控制台,这取决于用户,如果他决定关闭控制台,那么他输入的输入将被写入同一文件夹中的文件。所以,我需要一种方法来查明何时关闭表单并在关闭之前写入文件。 – user2699298
哦,对不起,误解了你的问题呢! – Vallentin
的关闭控制台有效地杀死你的应用程序。在Windows中,我不确定是否有能力捕获这些信息,但在Linux中,您可以捕获KILL信号?
- 1. VSCode是否有像Sublime Text控制台这样的控制台?
- 2. 事件“关闭childWindow”是否存在?
- 3. 控制台应用程序C的关闭事件#
- 4. C#控制台关键事件
- 5. 在C中关闭 - 这是否工作?
- 6. 如何在PowerShell中捕获控制台关闭事件?
- 7. 控制台窗口关闭时是否可以订阅一个事件?
- 8. C#中是否存在“Javascript上下文”这样的事情?
- 9. 关闭控制台输入C++
- 10. 控制台窗口刚刚关闭? c#
- 11. 关闭微软Office C#控制台
- 12. 不要关闭控制台(C#)
- 13. C++代码自动关闭控制台
- 14. C#打开/关闭控制台输出
- 15. 关闭控制台关闭进程
- 16. Windows窗体中是否存在“LoadComplete”这样的事件?
- 17. DevTools控制台 - 关闭它
- 18. 覆盖控制台关闭
- 19. 关闭控制台消息
- 20. 控制台窗口关闭
- 21. 检查控制台是否存在
- 22. Windows控制台应用程序 - 用于关闭事件信号
- 23. 为Rebol控制台触发关闭事件?
- 24. 控制台捕捉关闭事件线程
- 25. 如何捕捉控制台关闭事件?
- 26. 如何关闭在GETH控制台控制台
- 27. 点击关闭控制台窗口来结束C++控制台程序是否正确?
- 28. Docusign发件人组是否存在这样的事情?
- 29. C++窗口(winapi,不是控制台),立即关闭
- 30. 在PyQt4 GUI关闭后关闭打开的控制台
我假设你在谈论的Windows吗? – Matt
@Matt是的,Windows。 – user2699298