Java屏蔽Windows按键代码详解编程语言
2023-06-13 09:20:30 时间
import com.sun.jna.platform.win32.Kernel32; import com.sun.jna.platform.win32.User32; import com.sun.jna.platform.win32.WinDef.HMODULE; import com.sun.jna.platform.win32.WinDef.LRESULT; import com.sun.jna.platform.win32.WinDef.WPARAM; import com.sun.jna.platform.win32.WinUser.HHOOK; import com.sun.jna.platform.win32.WinUser.KBDLLHOOKSTRUCT; import com.sun.jna.platform.win32.WinUser.LowLevelKeyboardProc; import com.sun.jna.platform.win32.WinUser.MSG; public class KeyHook { private static HHOOK hhk; private static LowLevelKeyboardProc keyboardHook; private static User32 lib; public static void blockWindowsKey() { if (isWindows()) { new Thread(new Runnable() { @Override public void run() { lib = User32.INSTANCE; HMODULE hMod = Kernel32.INSTANCE.GetModuleHandle(null); keyboardHook = new LowLevelKeyboardProc() { public LRESULT callback(int nCode, WPARAM wParam, KBDLLHOOKSTRUCT info) { if (nCode = 0) { switch (info.vkCode) { case 0x5B: case 0x5C: return new LRESULT(1); default: //do nothing return lib.CallNextHookEx(hhk, nCode, wParam, info.getPointer()); hhk = lib.SetWindowsHookEx(13, keyboardHook, hMod, 0); int result; MSG msg = new MSG(); while ((result = lib.GetMessage(msg, null, 0, 0)) != 0) { if (result == -1) { break; } else { lib.TranslateMessage(msg); lib.DispatchMessage(msg); lib.UnhookWindowsHookEx(hhk); }).start(); public static void unblockWindowsKey() { if (isWindows() lib != null) { lib.UnhookWindowsHookEx(hhk); public static boolean isWindows() { String os = System.getProperty("os.name").toLowerCase(); return (os.indexOf("win") = 0); }
10901.html
cjavawindows相关文章
- java 上传文件接口_Java接口实现文件上传
- Java 版下载必应每日壁纸并自动设置 Windows 系统桌面(改编自 C# 版)
- java double转decimal_Java中Double与BigDecimal的相互转换
- java数组的声明_Java数组定义常用方法[通俗易懂]
- 学java用什么编译器_学习Java用什么编译软件好
- java标识符与关键字_4、Java标识符和关键字
- java的运行环境是什么_Java运行环境是什么
- 怎么使用 eclipse 开发和运行 Java 程序呢?
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java uuid 随机数_Java随机数和UUID[通俗易懂]
- java dom4j 添加节点_Java dom4j获取,添加,删除,查找,设置Element节点方法「建议收藏」
- Windows中Java环境搭建
- java事务的使用_Java跨库事务
- java面对对象(中.2)(多态性,终极父类,instanceof,包装类等)
- Java 之 Log日志
- Java Activiti6.0 spring5 SSM 工作流引擎 审批流程 java项目框架详解编程语言
- java JNI: C 语言调用 Java 方法示例详解编程语言
- Java检测Windows的U盘插入详解编程语言
- Java学习笔记之六java三种循环(for,while,do……while)的使用方法及区别详解编程语言
- Java学习笔记之五java数组详解编程语言
- Java学习笔记之二java标识符命名规范详解编程语言
- 深入浅出:利用Java操作MySQL(java操作mysql)
- Java实现Redis事务管理(redis事务java)
- 安装Windows系统下的Redis服务(windows安装redis)
- Windows无法启动MySQL服务:解决方案.(windows无法启动mysql服务)
- 让Java开发能力在Linux下得到更大发挥(java linux编程)
- Linux与Java结合:开启全新的编程之旅(linux java())
- JAVA及相关字符集编码问题研究分享