news 2026/9/25 19:18:41

10个实用iohook事件示例:键盘按键、鼠标移动与全局快捷键实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
10个实用iohook事件示例:键盘按键、鼠标移动与全局快捷键实现

10个实用iohook事件示例:键盘按键、鼠标移动与全局快捷键实现

【免费下载链接】iohook项目地址: https://gitcode.com/gh_mirrors/ioh/iohook

iohook是一个强大的Node.js库,提供全局键盘和鼠标事件监听功能,让开发者能够轻松捕获和响应系统级的输入事件。无论是构建快捷键工具、自动化脚本还是游戏辅助程序,iohook都能提供稳定可靠的事件监听能力。本文将通过10个实用示例,带你快速掌握iohook的核心用法,从基础的按键监听 to 高级的快捷键组合实现。

1. 监听鼠标点击事件 🖱️

通过监听mouseup事件可以捕获鼠标按键释放的动作,常用于记录用户交互或实现点击触发功能。

iohook.on('mouseup', (event) => { console.log(`鼠标点击: ${event.button} 位置: (${event.x}, ${event.y})`); });

2. 键盘按键释放监听 ⌨️

keyup事件能捕获键盘按键释放瞬间,可用于实现热键检测或输入记录功能。

iohook.on('keyup', (event) => { console.log(`按键释放: ${event.keycode} 字符: ${String.fromCharCode(event.rawcode)}`); });

3. 鼠标移动轨迹跟踪 🖱️➡️

通过mousemove事件可以实时获取鼠标位置,适用于屏幕录制、鼠标手势识别等场景。

iohook.on('mousemove', (event) => { console.log(`鼠标位置: (${event.x}, ${event.y})`); });

4. 鼠标滚轮事件监听 🔄

监听mousewheel事件可捕获滚轮滚动方向和距离,常用于实现自定义滚动控制。

iohook.on('mousewheel', (event) => { console.log(`滚轮方向: ${event.direction} 滚动量: ${event.amount}`); });

5. 键盘按下事件捕获 ⌨️⏬

keydown事件在按键被按下时触发,可用于实现连续输入检测或游戏控制。

iohook.on('keydown', (event) => { console.log(`按键按下: ${event.keycode}`); });

6. 组合键检测(如Ctrl+C) 🎹

通过判断多个按键的状态组合,可以实现全局快捷键功能,如复制粘贴操作的监听。

let ctrlPressed = false; iohook.on('keydown', (event) => { if (event.keycode === 29) ctrlPressed = true; if (ctrlPressed && event.keycode === 67) { console.log('检测到 Ctrl+C 组合键'); } }); iohook.on('keyup', (event) => { if (event.keycode === 29) ctrlPressed = false; });

7. 鼠标双击事件识别 👆👆

通过记录点击时间间隔,结合mousedown事件实现双击检测功能。

let lastClickTime = 0; iohook.on('mousedown', (event) => { const now = Date.now(); if (now - lastClickTime < 300) { console.log('检测到鼠标双击'); } lastClickTime = now; });

8. 全局热键注册 ⚡

利用iohook可以注册系统级全局热键,即使应用在后台也能响应。

// 注册 F12 热键 iohook.registerShortcut([123], () => { console.log('F12 热键被触发'); });

9. 键盘输入记录 📝

通过组合keydown和keyup事件,可以实现简单的键盘输入记录功能。

let inputBuffer = ''; iohook.on('keydown', (event) => { inputBuffer += String.fromCharCode(event.rawcode); if (event.keycode === 28) { // Enter键 console.log('输入内容:', inputBuffer); inputBuffer = ''; } });

10. 鼠标拖拽事件跟踪 🖱️📦

结合mousedown、mousemove和mouseup事件,实现鼠标拖拽操作的完整跟踪。

let isDragging = false; iohook.on('mousedown', () => { isDragging = true; }); iohook.on('mousemove', (event) => { if (isDragging) { console.log(`拖拽中: (${event.x}, ${event.y})`); } }); iohook.on('mouseup', () => { isDragging = false; });

如何开始使用iohook?

  1. 首先克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/ioh/iohook
  1. 安装依赖:
cd iohook npm install
  1. 参考示例代码: 可以在examples/node/目录下找到更多完整示例,包括example.js和mouse-click-propagation.js等实用代码。

总结

iohook为Node.js开发者提供了强大的全局输入事件监听能力,通过本文介绍的10个示例,你可以快速掌握从基础事件监听 to 高级功能实现的全部技巧。无论是构建 productivity 工具、游戏辅助程序还是自动化脚本,iohook都能成为你的得力助手。更多高级用法可以参考项目docs/usage.md文档,开始你的iohook探索之旅吧!

【免费下载链接】iohook项目地址: https://gitcode.com/gh_mirrors/ioh/iohook

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 14:14:57

【linux】shell命令

文章目录1.crontab1.1 定时清空日志2.文件处理2.1按行均匀分割3. 命令3.1 netstat命令3.1 安装netstat 命令4.安装软件4.1 基于 Debian 的系统&#xff08;如 Ubuntu&#xff09;4.2 基于 Red Hat 的系统&#xff08;如 CentOS&#xff09;5.curl命令5.1 https5.2 下载文件5.3 …

作者头像 李华
网站建设 2026/9/13 13:27:15

DeepBump vs 传统方法:AI纹理生成工具的效率提升对比

DeepBump vs 传统方法&#xff1a;AI纹理生成工具的效率提升对比 【免费下载链接】DeepBump Normal & height maps generation from single pictures 项目地址: https://gitcode.com/gh_mirrors/de/DeepBump DeepBump是一款基于AI技术的纹理生成工具&#xff0c;能够…

作者头像 李华
网站建设 2026/9/13 20:41:07

Reverse SSH客户端生成秘籍:link命令参数详解与实战案例

Reverse SSH客户端生成秘籍&#xff1a;link命令参数详解与实战案例 【免费下载链接】reverse_ssh SSH based reverse shell 项目地址: https://gitcode.com/gh_mirrors/re/reverse_ssh Reverse SSH是一款基于SSH的反向Shell工具&#xff0c;通过link命令可以轻松生成客…

作者头像 李华
网站建设 2026/9/23 13:51:43

7个高效Git统计技巧:用git-quick-stats轻松掌握项目开发动态

7个高效Git统计技巧&#xff1a;用git-quick-stats轻松掌握项目开发动态 【免费下载链接】git-quick-stats ▁▅▆▃▅ Git quick statistics is a simple and efficient way to access various statistics in git repository. 项目地址: https://gitcode.com/gh_mirrors/gi/…

作者头像 李华
网站建设 2026/9/13 22:57:03

Pry性能分析终极指南:快速定位Ruby代码瓶颈的5个实用技巧

Pry性能分析终极指南&#xff1a;快速定位Ruby代码瓶颈的5个实用技巧 【免费下载链接】pry A runtime developer console and IRB alternative with powerful introspection capabilities. 项目地址: https://gitcode.com/gh_mirrors/pr/pry Pry作为一款强大的Ruby运行时…

作者头像 李华