设为首页 加入收藏

TOP

Java运用JNI调用dll实现屏蔽系统热键
2014-11-23 22:10:11 来源: 作者: 【 】 浏览:33
Tags:Java 运用 JNI 调用 dll 实现 屏蔽 系统 热键

【前言】


这几天用Java做个锁屏软件需要屏蔽系统热键,就是Win+D,Ctrl+Alt+Del等,参考了这篇文章:


但是对于只懂Java的人无疑是一种折磨,


好不容易跟着文章做下来又报错,总之很是痛苦,


结合这两篇文章终于实现了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包下的,


--------------------------------------分割线 --------------------------------------


--------------------------------------分割线 --------------------------------------


2.将原来的System.load("D:/shieldHK.dll");改写是为了增加灵活性。


——Eclipse自动会生成.class文件,找到它,如图:



——cmd下,到这个bin的这一层,输入已下命令生成.h文件:



生成的.h文件:



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux高性能服务器编程——I/O复用 下一篇Nginx学习——http配置项解析编程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: