代码之家  ›  专栏  ›  技术社区  ›  Nick Pierpoint

Java应用程序是否有办法检测屏幕是否被锁定?

  •  9
  • Nick Pierpoint  · 技术社区  · 17 年前

    我正在寻找一种了解Java应用程序的方法( JNI-它是一个多平台应用程序)可以检测屏幕是否被锁定。

    供参考。。。我们的应用程序在用户工作时记录时间——我们希望它在屏幕锁定时自动停止记录,而不是用户必须显式地停止记录。

    2 回复  |  直到 17 年前
        1
  •  1
  •   Michael Borgwardt    17 年前

    我不认为有一个API可以实现这一点,甚至没有一种方法可以实现这一切。解析java.awt.Robot生成的屏幕截图既不依赖于平台,也不依赖于版本,甚至不依赖于配置,一般来说,我认为“屏幕被锁定”并不是一个足够好的定义概念,不能在这个意义上使用-在Linux上,可以有多个“屏幕”(X服务器),您可以切换到控制台终端,您可以让运行一台(或多台)计算机的应用程序通过网络在另一台计算机上显示其GUI。。。

        2
  •  1
  •   Community Mohan Dere    9 年前

    我确认似乎没有Java API来检测屏幕锁定状态。

    Spark 开发者在2006年进行了一次尝试(如下所示 thread shows
    WTSQuerySessionInformation (用于检测是否断开连接使用 WTSQuerySessionInformation(NULL, WTS_CURRENT_SESSION, WTSConnectState) 寻找 WTSDisconnected ).

    所以,作为 Michael pointed out ,没有“多平台”的通用答案(据我所知)。