浅谈Node.js操作剪贴板的两种方式
作者:卿·静
在 Node.js 中,我们可以通过多种方式实现对系统剪贴板的读写操作。本文将以一段示例代码为基础,分别介绍两种常见的剪贴板操作方式:
1.clipboardy
下载第三方工具库clipboardy ,调用该库封装的方法可直接向剪切板读写内容。
npm install clipboardy
clipboardy不支持使用require导入,需在package.json文件中添加选项 "type": "module" ,在代码中使用import导入工具库
import clipboard from "clipboardy"; clipboard.writeSync("hello world"); // 向剪贴板写入内容
方法说明: clipboard.writeSync(text: string): void
参数:text:要写入系统剪贴板的文本内容,类型为 string
功能:同步将字符串写入剪贴板。若执行成功,按下ctrl+v可粘贴该内容,如果文本内容为空字符串,按下ctrl+v无反应,类似于清空剪切板
let str = clipboard.readSync(); // 从剪贴板读取内容 console.log(str);
方法说明:clipboard.readSync(): string
返回值:返回当前剪贴板中存储的文本内容,类型为 string
功能:同步读取系统剪贴板中的文本数据
clipboardy工具库的特点为简洁、跨平台,适合快速开发,但无法复制文件。
2.child_process.exec
在某些场景中,我们可能希望通过系统命令实现更复杂的剪贴板操作,比如操作文件、清空剪贴板等。这时可以使用 Node.js 内置的 child_process 模块中的 exec() 函数。
(1)读取剪切板
import { exec } from "child_process"; const get_command = `powershell Get-Clipboard`; exec(get_command, (error, stdout, stderr) => { if (error) { console.error("读取剪贴板内容失败:", error); return; } console.log(stdout); });
命令说明:Get-Clipboard 是 PowerShell 命令,用于获取当前剪贴板的内容
方法说明: exec(command[, options][, callback]),功能是执行一条 shell 命令并一次性获取输出
参数:
- command:完整的 shell 命令字符串
- options:可设置输出内容的编码格式等
- callback:回调函数,获取 error、stdout(标准输出)、stderr(错误输出),stdout 将包含剪贴板中的文本内容
(2)设置剪切板字符内容
const set_command = `powershell Set-Clipboard 'hello wrold'`; exec(set_command, (error, stdout, stderr) => { if (error) { console.error("复制内容到剪贴板失败:", error); return; } console.log(stdout); });
命令说明:
- Set-Clipboard 是 PowerShell 命令,用于将指定文本写入剪贴板。
- 'hello wrold' 是要写入的文本内容,用单引号包裹
(3)设置剪切板文件内容
const file_command = `powershell Set-Clipboard -Path "F:/CSDN/test.json"`; exec(file_command, (error, stdout, stderr) => { if (error) { console.error("复制文件到剪贴板失败:", error); return; } console.log(stdout); });
命令说明:
- Set-Clipboard -Path <路径> 可以将文件对象复制到剪贴板。
- 执行该命令后,用户可以在资源管理器中直接粘贴该文件。
- 注意路径应使用双引号包裹,尤其是路径中包含空格或中文时。
(4)清空剪切板
const clear_command = `cmd /c "echo off | clip"`; exec(clear_command, (error, stdout, stderr) => { if (error) { console.error("清空剪贴板失败:", error); return; } console.log(stdout); });
命令说明:
- cmd /c:调用 CMD 执行后面的命令并关闭命令行窗口。
- echo off:输出空字符串。
- | clip:将前面命令的输出(此处为空)通过管道符 | 传给 clip 命令。
- clip:Windows 命令行工具,用于将输入内容复制到剪贴板。
- 整体功能是向剪贴板写入空内容,达到清空效果,按下ctrl+v无反应,此时按下win+v打开剪切板,里面依旧有内容
3.总结对比
操作方式 | 优点 | 适用场景 |
---|---|---|
clipboardy | 简洁、跨平台、安装即用 | 快速开发、文本操作 |
exec+命令 | 功能更丰富,可操作文件等 | 深度定制、系统集成 |
到此这篇关于浅谈Node.js 操作剪贴板的两种方式的文章就介绍到这了,更多相关Node.js 操作剪贴板内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!