我想终止许多进程,但我想让每个进程都有机会保存它的数据,询问用户保存文件甚至忽略关闭请求。如何正常终止进程?
所以TerminateProcess
是不可能的,因为它立即杀死过程。另一种方法是使用SendMessage
/PostMessage
发送一个WM_CLOSE
到主窗口,不幸的是我不知道任何有关进程的窗口,我只有进程ID,所以FindWindow
也没有帮助。有没有其他的方法来找到一个过程的主窗口?
换句话说: 有什么办法终止任何过程正常,就像任务管理器,当你点击“结束任务”? (而不是“结束进程”)
我认为 “任务” 是顶层(可视)窗口。所以,'WM_CLOSE'将被发送(可能)在终止任务上。 – 2010-01-13 10:45:55
如果您不是软件开发人员 - 只是Windows用户 - 请参阅[相关超级用户如何正常询问正在运行的应用程序终止问题](http://superuser.com/questions/959364/on-windows-如何-可以-I-优雅-ASK-A-进程到终止)。 – unforgettableid 2015-08-19 02:33:21
请注意,从Windows 8.1起,任务管理器的“结束任务”按钮现在强行终止所选应用程序,并导致您丢失任何未保存的工作。你可能想编辑你的问题,以反映这一点。 – unforgettableid 2015-08-20 12:44:41