当前位置: 首页 > 面试题库 >

在Java应用程序中检测Windows注销事件

李经国
2023-03-14
问题内容

有没有可用于Java的库来侦听用户注销和其他Windows事件?(如果它支持多个平台,那就更好了!)

我记得几年前曾读过有关此类图书馆的文章,但现在似乎找不到。我已经看到其他线程使用带有win32ts的Python来做基本上相同的事情。

如果它是免费的和/或开源的,那就更好了。

谢谢。

注意
:使用的候选解决方案Runtime.getRuntime().addShutdownHook(Thread)无法与一起正常使用javaw。我仍在寻找适用于javaw的解决方案。请参阅Java错误ID
4486580和4302814。谢谢
–cam


问题答案:

我认为您想看看Runtime.addShutdownHook()。这为您提供了在JVM关闭之前执行操作的最后机会。这样,您可以检测到实际注销所有应用程序的位置,而不是只是暂时切换用户而使其状态准备好返回。但是,作为警告,在关闭过程中您打算做的任何事情都必须简短,因为操作系统随时可能对您进行SIGKILL(或类似操作),从而立即停止JVM。

如果这不是您所需要的,则可能需要使用JNI注册本机侦听器。至于其他Windows事件,AWT库提供了许多类来实现大多数普通应用程序会感兴趣的侦听器。在这种情况下,您可能对FocusEvent感兴趣。



 类似资料:
  • 问题内容: 是否可以检测PC何时注销。我需要开发一个应用程序,在PC注销之前,该应用程序将有关注销时间的文本文档写入文本。 问题答案: 对于.NET,请参见以下问题:[c#中是否有方法可以检测Windows关闭/注销并取消该操作(询问用户之后)http://codingdict.com/questions/159553)

  • 它给出: 下面是我使用的代码: 方法verifyUserExistance是; 我就是这样处理注销的;

  • 我已经设置了一个使用OKTA作为IDP的应用程序。该应用程序基于SAML。这部分工作正常。 但我无法注销。为此,我们有1。已启用单一注销2。设置单一注销URL(我从标题Identity Provider Single Logout URL下的IDP元数据中收到此URL)3。Sp问题(我从标题Identity Provider Issuer下的IDP元数据中收到此消息)4。签名证书(这是IDP的证书

  • 是否可以通过应用程序洞察来检测在前提下运行的windows服务?不需要像Web应用程序那样让它自动收集应用程序的度量,将自定义事件推送到Azure就足够了。

  • 问题内容: 我有一个批处理文件,可在Windows 2003服务器中启动Java进程。根据安全策略,如果用户在特定时间段内处于非活动状态,则该计算机的用户将被强制注销。问题在于,当用户注销时,该过程也会终止。 我安排了一个新任务(“控制面板”->“计划任务”),并选择了“计算机启动时”选项,并在那里提供了用户帐户详细信息。但这似乎没有任何效果,用户仍然注销并且该进程终止。是否需要重新启动才能使此更