表现良好的Windows程序需要允许用户在关闭PC时保存他们的工作。
如何让我的应用检测到关机事件?任何解决方案都应该允许用户在用户选择时中止关闭,例如“取消”。
正常的Swing窗口关闭挂钩不起作用,也没有添加关闭挂钩。
在测试时,不会调用WindowListener(windowClosing,windowClosed等)的方法。
我接受的答案需要使用特定于平台的代码(JNI注册WM_QUERYENDSESSION)。这不是Swing的错误吗?
请参阅http://forums.sun.com/thread.jspa?threadID=481807&messageID=2246870
答案 0 :(得分:3)
将一些JNI代码写入WM_QUERYENDSESSION消息。您可以从MSDN文档或Google搜索中获取详细信息。
如果您不想编写太多的C ++代码来执行此操作,我可以推荐JNA库click here。这为C代码提供了一些很好的Java抽象。
答案 1 :(得分:1)
答案 2 :(得分:0)
以上似乎是更好的答案。
我找不到有关检测窗口关闭事件的任何好信息。我想最好的方法是检测应用程序试图关闭的天气,使用窗口关闭事件等,然后提出问题。
答案 3 :(得分:0)
在java中查找信号处理。当Windows关闭时,它会向应用程序发送一个信号,要求它终止最有可能的sigterm
请参阅here了解更多相关信息(我不是网站所有者)