Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Java运用JNI调用dll实现屏蔽系统热键

【前言】这几天用Java做个锁屏软件需要屏蔽系统热键,就是Win+D,Ctrl+Alt+Del等,参考了这篇文章:Java运用JNI调用dll(含源码)实现屏蔽系统热键和任务栏 http://www.linuxidc.com/Linux/2014-07/103941.htm但是对于只懂Java的人无疑是一种折磨,好不容易跟着文章做下来又报错,总之很是痛苦,今天又看了篇文章:http://www.linuxidc.com/Linux/2014-07/103940.htm结合这两篇文章终于实现了Java屏蔽系统热键了。下面写出来,图文结合,宣泄一下这几天的郁闷。【说明】1.本文都是在eclipse下开发的,dos下可以自己尝试。2.以下源码都是上面第一篇文章中的【1】编写Java文件,编译出class文件,javah出.h文件——Java源码package com.uikoo9.JLocker;import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;/**
*
* @author Administrator
*/
public class ShieldHotKey {
    static{
     //下面这部分是为了增加灵活性,dll可以放到jar包中
     try
     {
      File file = File.createTempFile("shieldHK", ".dll");
            FileOutputStream fout = new FileOutputStream(file);
            InputStream in = ShieldHotKey.class.getResourceAsStream("shieldHK.dll");
           
            byte[] b = new byte[1024];
            int len = 0;
            while((len = in.read(b)) != -1){
                fout.write(b, 0, len);
            }
           
            fout.flush();
            in.close();
            fout.close();
           
            System.load(file.getAbsolutePath());
  }
     catch (Exception e) {}
     
//        System.load("D:/shieldHK.dll");
    }
    public static native void Attach();//启动屏蔽
    public static native void Detach();//关闭屏蔽
}说明:1.类ShieldHotKey是建在com.uikoo9.JLocker包下的,--------------------------------------分割线 --------------------------------------编写高质量代码 改善Java程序的151个建议 PDF高清完整版 http://www.linuxidc.com/Linux/2014-06/103388.htmJava 8简明教程 http://www.linuxidc.com/Linux/2014-03/98754.htmJava对象初始化顺序的简单验证 http://www.linuxidc.com/Linux/2014-02/96220.htmJava对象值传递和对象传递的总结 http://www.linuxidc.com/Linux/2012-12/76692.htmJava对象序列化ObjectOutputStream和ObjectInputStream示例 http://www.linuxidc.com/Linux/2012-08/68360.htm--------------------------------------分割线 --------------------------------------2.将原来的System.load("D:/shieldHK.dll");改写是为了增加灵活性。——Eclipse自动会生成.class文件,找到它,如图:——cmd下,到这个bin的这一层,输入已下命令生成.h文件:生成的.h文件:更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-07/103942p2.htm