代码之家  ›  专栏  ›  技术社区  ›  David Kerr

如何从Swing应用程序检测到电脑正在关闭?

  •  2
  • David Kerr  · 技术社区  · 16 年前

    行为良好的Windows程序需要允许用户在关闭电脑时保存他们的工作。

    如何使我的应用程序检测关闭事件?任何解决方案都应允许用户中止关机,如果用户选择,请说“取消”。

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

    测试时,不会调用WindowListener的方法(WindowClosing、WindowClosed等)。

    我接受的答案需要使用平台特定的代码(JNI注册wm_queryendsession)。这不是秋千上的虫子吗?

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

    4 回复  |  直到 12 年前
        1
  •  3
  •   Aniket Kulkarni    12 年前

    编写一些JNI代码到wm_queryendsession消息。您可以从msdn文档或通过google获取详细信息。

    如果你不想写太多的C++代码来做这个,我可以推荐JNA库。 click here . 它为C代码提供了一些漂亮的Java抽象。

        3
  •  0
  •   Cory    16 年前

    以上似乎是更好的答案。

    我找不到任何关于检测窗口关闭事件的好信息。我想最好的方法是检测应用程序是否试图关闭,使用窗口关闭事件或类似事件,然后提出问题。

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

        4
  •  0
  •   Jean    16 年前

    在Java中寻找信号处理。当Windows关闭时,它将向应用程序发送一个信号,要求它终止很可能是一个sigterm

    看见 here 更多信息(我不是网站的所有者)