我想終止許多進程,但我想讓每個進程都有機會保存它的數據,詢問用戶保存文件甚至忽略關閉請求。如何正常終止進程?
所以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