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?
- 首先克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/ioh/iohook- 安装依赖:
cd iohook npm install- 参考示例代码: 可以在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),仅供参考