开发者

using Xlib XnextEvent on linux using JNA

I want to grab the all global key events on linux using JNA same as window hooks. following is the code:

package pack.tracker.services;

//import sun.awt.X11.XEvent;

//import com.jscape.inet.ssh.transport.KeyCreator;
import com.sun.jna.examples.unix.X11;
import com.sun开发者_如何学运维.jna.examples.unix.X11.Display;
import com.sun.jna.examples.unix.X11.Window;
import com.sun.jna.examples.unix.X11.XEvent;

public class JNATest {
    X11 x = X11.INSTANCE;
    Window window;
    Display display = x.XOpenDisplay("0");
    XEvent ev = new XEvent();

    public JNATest() {
        System.out.println("hi");
        // TODO Auto-generated constructor stub
        String keyString = "F3" ;
        Display display = x.XOpenDisplay(null);
        XEvent ev = new XEvent();
        window = x.XDefaultRootWindow(display);


        for(;;){
            x.XNextEvent(display, ev);
            if(ev.type == X11.KeyPress){
                System.out.println("KeyPressed");

            }
            else{
                System.out.println("ok");
            }
        }
    }

    public static void main(String s[]){
        new JNATest();
    }
}

I donot know whats going wrong. I am unable to use XGrabKeyboard. Please help me out.

Thanks and regards, Vivek Birdi


The XGrabKeys method has not been implemented in JNA. You will need to extend the X11 library and define the method like so:

import com.sun.jna.*;
import com.sun.jna.platform.unix.X11;
import com.sun.jna.platform.unix.X11.*;

public interface Xlib extends X11 {

    int XGrabKey(Display display, int keycode, NativeLong modifiers, Window grab_window, boolean owner_events, int pointer_mode, int keyboard_mode);
      /*
      Display *display;
      int keycode;
      unsigned int modifiers;
      Window grab_window;
      Bool owner_events;
      int pointer_mode, keyboard_mode;
      */
}

Have a look at this site for Xlib structures and methods. If you are still unable to implement in JNA then have a look at JXGrabkey at(http://sourceforge.net/projects/jxgrabkey/).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜