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;
適切な解決策を提案してください。