Node鼠标键盘屏幕控制

安装 RobotJS

RobotJS 是一个 Node.js 库,用于控制鼠标、键盘和屏幕。安装前确保已安装 Node.js 和 npm。通过以下命令安装:

bash 复制代码
npm install robotjs

基本鼠标控制

RobotJS 提供鼠标移动、点击和拖动的功能。以下代码示例展示如何移动鼠标并点击:

javascript 复制代码
const robot = require("robotjs");

// 移动鼠标到屏幕坐标 (100, 100)
robot.moveMouse(100, 100);

// 模拟鼠标左键点击
robot.mouseClick();

键盘输入控制

RobotJS 支持模拟键盘输入,包括按键和字符串输入。以下示例展示如何输入文本和组合键:

javascript 复制代码
const robot = require("robotjs");

// 输入字符串
robot.typeString("Hello World");

// 模拟按键组合 (Ctrl + C)
robot.keyTap("c", "control");

屏幕截图功能

RobotJS 可以捕获屏幕指定区域的像素数据。以下代码截取屏幕的一部分并保存为 bitmap:

javascript 复制代码
const robot = require("robotjs");

// 截取从 (0, 0) 到 (100, 100) 的区域
const img = robot.screen.capture(0, 0, 100, 100);

// 获取像素颜色 (x, y 相对于截图区域)
const hex = img.colorAt(10, 10);
console.log(`颜色值: ${hex}`);

高级键盘事件

对于更复杂的键盘操作,可以模拟按下和释放单个按键:

javascript 复制代码
const robot = require("robotjs");

// 按下 Shift 键
robot.keyToggle("shift", "down");

// 按下 A 键
robot.keyToggle("a", "down");

// 释放 A 键
robot.keyToggle("a", "up");

// 释放 Shift 键
robot.keyToggle("shift", "up");

鼠标拖拽操作

RobotJS 支持模拟鼠标拖拽行为,以下代码展示如何拖动鼠标:

javascript 复制代码
const robot = require("robotjs");

// 移动鼠标到起始位置
robot.moveMouse(100, 100);

// 按下鼠标左键
robot.mouseToggle("down");

// 拖动到新位置
robot.dragMouse(200, 200);

// 释放鼠标左键
robot.mouseToggle("up");

获取屏幕尺寸

通过 RobotJS 可以获取当前屏幕的尺寸信息:

javascript 复制代码
const robot = require("robotjs");

// 获取屏幕尺寸
const screenSize = robot.getScreenSize();
console.log(`宽度: ${screenSize.width}, 高度: ${screenSize.height}`);

注意事项

RobotJS 的功能依赖于系统权限,尤其在 macOS 上需启用辅助功能权限。Windows 和 Linux 可能需要管理员权限。某些操作(如屏幕截图)在高分辨率屏幕上可能性能较低。

相关推荐
嘟嘟07172 小时前
NestJS 入门:从 NestFactory 入口到 Module/Controller/Service 模块化结构一次讲清
typescript·node.js·nestjs
breeze jiang4 小时前
NestJS MVC 实战:用 hello 项目 7 个文件讲清分层、装饰器、依赖注入与错误处理
node.js·mvc·js
m0_3807438714 小时前
从零调用 Claude 教程
开发语言·python·node.js
烬羽18 小时前
从 nest new 到 Hello World:一个最小 NestJS 项目,讲透工厂 + 装饰器 + 模块化
设计模式·node.js·nestjs
渔夫正在掘金20 小时前
Cordis 中文教程:渐进式构建插件化应用
前端·node.js·ai编程
大家的林语冰1 天前
✌️ 让 Rust 再次伟大,pnpm 12 抛弃 TypeScript,移植 Rust 原地起飞!
前端·javascript·node.js
抓不住时间的沙1 天前
butterfly主题美化,打造属于自己的个性博客
java·开发语言·前端·javascript·node.js·github
抓不住时间的沙1 天前
N1搭建Hexo个人博客,部署到Github
python·docker·node.js·debian·github·arm
必须会一定会1 天前
Node.js Agent Handoff 仓库扫描 MVP:忽略规则、include 通配与稳定输出实现
人工智能·node.js·ai编程
八角丶2 天前
Node.js Cluster 详解
前端·node.js