相关疑难解决方法(0)

Windows中的JNA键盘挂钩

我已经整理了一个JNA代码,用于在Windows中安装键盘钩子(使用JNA示例).代码编译和一切,我得到了钩子安装(我成功地处理了钩子),我也可以成功卸载钩子.但是,当我按下键盘上的任意键时,回调永远不会被调用.这是我的代码(大部分是从JNA示例中获得的类型定义,直接转到"main"部分)

import com.sun.jna.IntegerType;
import com.sun.jna.Pointer;
import com.sun.jna.PointerType;
import com.sun.jna.Structure;
import com.sun.jna.FromNativeContext;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.PointerByReference;
import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.win32.StdCallLibrary.StdCallCallback;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import com.sun.jna.Library;
import com.sun.jna.win32.W32APITypeMapper;
import com.sun.jna.win32.W32APIFunctionMapper;

import java.util.Map;
import java.util.HashMap;

public class HelloWorld {
    static Map UNICODE_OPTIONS = new HashMap() {
        {
            put("type-mapper", W32APITypeMapper.UNICODE);
            put("function-mapper", W32APIFunctionMapper.UNICODE);
        }
    };

    public static class LONG_PTR extends IntegerType {
        public LONG_PTR() { this(0); }
        public LONG_PTR(long value) { super(Pointer.SIZE, value); }
    }

    public static class UINT_PTR extends IntegerType {
        public UINT_PTR() …
Run Code Online (Sandbox Code Playgroud)

java windows keyboard-hook jna

13
推荐指数
1
解决办法
2万
查看次数

有没有办法在没有 JFrame 的情况下获取键盘事件?

我想让我的程序在用户按下某个快捷方式时取消隐藏主窗口。有没有办法获取全局关键事件,而不仅仅是焦点在应用程序框架内时发生的事件?

java keyboard swing event-listener keyboard-events

4
推荐指数
1
解决办法
1万
查看次数