是否有可以与Java一起使用的库来监听用户注销以及可能的其他Windows事件?(如果它支持多个平台,那就更好了!)
我记得很多年前读过这种类似的图书馆,但现在似乎无法找到它.我已经看到其他线程与win32ts一起使用Python做同样的事情.
如果它是免费的和/或开源的话也更好.
谢谢.
注意:使用的候选解决方案Runtime.getRuntime().addShutdownHook(Thread)
无法正常使用javaw
.我仍然在寻找一种适用于javaw的解决方案.请参阅java bug ids 4486580和4302814.谢谢--cam
我想你想看一下Runtime.addShutdownHook().这给你的最后一搏的机会做的事情JVM关闭之前.这使您可以检测出实际注销,所有的应用程序都是关闭的,但他们不只是暂时切换用户,离开他们的国家准备回来.然而,作为一个警告,不管你打算在关机过程中需要做的是简单的,因为OS可以在任何时间,立即停止了JVM SIGKILL(或等值)你.
如果这不是您所需要的,您可能需要使用JNI来注册本机侦听器.至于其他Windows事件,AWT库提供了许多用于实现大多数普通应用程序感兴趣的侦听器的类.在这种情况下,您可能对FocusEvent感兴趣.