我是JNA的新手,我有这个代码,它应该通过调用win7中的dll文件来阻止输入。但是,当我运行此代码时,没有任何反应。没有编译错误,我无法弄清楚为什么它不会阻止我的键盘和鼠标。请指导我。
public class BlockInput {
public static void main(String[] args) {
NativeLibrary lib = NativeLibrary.getInstance("user32");
Function fun = lib.getFunction("BlockInput");
System.out.println("Lib :" + lib + ".\nFun " + fun + ".");
fun.invoke(new Object[]{Boolean.TRUE});
try {
Thread.sleep(10000);
} catch(InterruptedException ie) {}
lib.dispose();
}
}
编辑:使用Native.getLastError();我开始知道访问dll文件的人我收到了错误5(拒绝访问)。是否有任何可能的方法来获取访问权限,以便我可以使其工作?
答案 0 :(得分:2)
如果您在Windows Vista或Windows 7上运行,则可能需要以管理员身份运行该程序。创建一个运行Java类的批处理文件,以简化操作。
答案 1 :(得分:0)
试一试 - Java的Native Global键盘和鼠标监听器。 JNativeHook