我正在使用 ShellExecute 从 C++ 生成一个应用程序,所以我有应用程序的 HINSTANCE。
现在如何使用 HINSTANCE 关闭它?我可以使用 WaitForSingleObject() 来等待应用程序完成吗?
最佳答案
无法正常关闭进程。使用 TerminateProcess
是一种突然的非优雅方式,但这将阻止进程运行自己的清理代码,并可能使内容处于“不确定状态”,请参阅 Quick overview of how processes exit on Windows XP .
很长一段时间以来,关于“终止进程”的常识是向进程最顶层的无主窗口发送 WM_CLOSE,期望应用程序通过优雅地退出来响应。参见 How To Terminate an Application "Cleanly" in Win32 ,以及关于找到正确窗口的相关主题的强制阅读:There can be more than one (or zero): Converting a process to a window
回答你还应该阅读 What can I do with the HINSTANCE returned by the ShellExecute function?了解为什么您拥有的 HINSTANCE 不值得信赖,更不用说没用了......
关于c++ - 如何使用 HINSTANCE 终止应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6064415/