2008-09-16 45 views
2

行为良好的Windows程序需要允许用户在关闭PC时保存工作。如何从Swing应用程序检测到PC正在关机?

如何让我的应用程序检测到关机事件?任何解决方案应该允许用户在用户选择时中止关闭,比如说“取消”。

正常的Swing窗口关闭挂钩不起作用,也没有添加关闭挂钩。

在测试时,WindowListener(windowClosing,windowClosed等)的方法不会被调用。

我接受的答案需要使用特定于平台的代码(JNI来注册WM_QUERYENDSESSION)。这不是Swing上的错误吗?

看到上面http://forums.sun.com/thread.jspa?threadID=481807&messageID=2246870

+0

您是否使用java.lang.runtime的shutdown hook? – mmattax 2008-09-16 12:56:26

回答

3

写一些JNI代码WM_QUERYENDSESSION消息。您可以从MSDN文档或通过Google搜索获得详细信息。

如果你不想写太多的C++代码来做到这一点,我可以推荐JNA库click here。这给了你一些C代码很好的Java抽象。

0

似乎是更好的答案。

我无法找到关于检测窗口关闭事件的任何好信息。我想最好的方法是检测应用程序尝试关闭的天气,使用窗口关闭事件等,然后提出问题。

http://www.javalobby.org/java/forums/t17933

0

查找信号在java中处理。当Windows关闭它会发出信号给应用程序要求其终止最有可能是SIGTERM

看到here以了解更多内容(我不是网站的所有者)

相关问题