0

JNA は、ubuntu 11.10 バージョン以降でシステムのアイドル時間を取得できません。

    public static long getIdleTimeMillis() {
            X11.Window win = null;
            Xss.XScreenSaverInfo info = null;
            X11.Display dpy = null;

            final X11 x11 = X11.INSTANCE;
            final Xss xss = Xss.INSTANCE;

            long idlemillis = 0L;
            try {
                    dpy = x11.XOpenDisplay(null);
                    win = x11.XDefaultRootWindow(dpy);
                    info = xss.XScreenSaverAllocInfo();
                    xss.XScreenSaverQueryInfo(dpy, win, info);

                    idlemillis = info.idle.longValue();

            } finally {
                    if (info != null)
                            x11.XFree(info.getPointer());
                    info = null;

                    if (dpy != null)
                            x11.XCloseDisplay(dpy);
                    dpy = null;
            }
            return idlemillis;

このコードを使用して、アイドル時間をキャプチャしています。ubuntuの下位バージョンでは問題なく動作しています。しかし、最新バージョンでは機能しません。

ラインから動かない

最終 Xss xss = Xss.INSTANCE;

適切な解決策を提案してください。

4

1 に答える 1

0

実際、このコードは、「libxss1」パッケージがシステムにインストールされている場合にのみ機能します。ubuntu 11.10 以降、libXss.so はデフォルトではインストールされません。

sudo apt-get install libxss1 これを解決しますが、追加のシステムパッケージのインストールが必要です

于 2013-05-15T13:35:47.463 に答える